Re: [perf] yet another 32/64-bit range check failure

From: Vince Weaver
Date: Thu Apr 24 2014 - 17:11:20 EST


On Wed, 23 Apr 2014, Peter Zijlstra wrote:
>
> Something like so should do I suppose.
>
> ---
> Subject: perf: Fix perf_event_open(.flags) test
>
> Vince noticed that we test the (unsigned long) flags field against an
> (unsigned int) constant. This would allow setting the high bits on 64bit
> platforms and not get an error.
>
> There is nothing that uses the high bits, so it should be entirely
> harmless, but we don't want userspace to accidentally set them anyway,
> so fix the constants.
>
> Reported-by: Vince Weaver <vincent.weaver@xxxxxxxxx>
> Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>

Tested-by: Vince Weaver <vincent.weaver@xxxxxxxxx>

Your patch fixes the problem, or at least the test I wrote to check the
issue now fails properly.

Oddly, with this patch applied, it's made it a lot harder (but not
impossible) to trigger the memory corruption bug, although that might just
be coincidence.

Vince
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/