Hi Hauke & Thomas,
On Tue, Jun 11, 2019 at 10:19:47AM +0200, Thomas Bogendoerfer wrote:
On Tue, Jun 11, 2019 at 01:41:21AM +0200, Hauke Mehrtens wrote:
On 5/28/19 7:05 PM, Paul Burton wrote:
diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index 2f616ebeb7e0..7755a1fad05a 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -203,6 +203,11 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) int __virt_addr_valid(const volatile void *kaddr) {
- unsigned long vaddr = (unsigned long)vaddr;
the second vaddr should be better kaddr
D'oh..! Right you are...
Returning false all the time is enough to silence the hardened usercopy warnings but clearly not the right behaviour.
Someone complained that this compiled to a constant "return 0" for him: https://bugs.openwrt.org/index.php?do=details&task_id=2305#comment6554
I just checked this on a unmodified 5.2-rc4 with the xway_defconfig and I get this:
0001915c <__virt_addr_valid>: 1915c: 03e00008 jr ra 19160: 00001025 move v0,zero
Is this intended?
I don't think so. Interesting what the compiler decides to do here.
Yes, this is equivalent to using uninitialized_var() but I'm surprised the code got discarded entirely...
Thanks, Paul