Messages in this thread | | | Date | Mon, 20 Oct 2014 10:08:18 -0400 | From | Theodore Ts'o <> | Subject | Re: drivers: random: Shift out-of-bounds in _mix_pool_bytes |
| |
On Mon, Oct 20, 2014 at 05:58:25PM +0400, Andrey Ryabinin wrote: > It's triggering when input_rotate == 0, so UBSan complains about right shift in rol32() > > static inline __u32 rol32(__u32 word, unsigned int shift) > { > return (word << shift) | (word >> (32 - shift)); > }
Ah, thanks; I don't know why I didn't see that.
So the only real question is whether we fix it in the call to rol32, or in the rol32 function itself (i.e):
static inline __u32 rol32(__u32 word, unsigned int shift) { return shift ? ((word << shift) | (word >> (32 - shift))) : word; }
Dos that make sense to everyone?
- Ted
| |