[PATCH][next] afs: fix integer overflow when shifting 1 more than 32 places

David Howells dhowells at redhat.com
Wed Apr 11 06:39:26 PDT 2018


Colin King <colin.king at canonical.com> wrote:

> Shifting 1 (a 32 bit signed int) more than 32 places will overflow
> the int, so explicitly use 1ULL to avoid this overflow.
> ...
> -	mask = (1 << nr_slots) - 1;
> +	mask = (1ULL << nr_slots) - 1;

nr_slots cannot be larger than 9, so what I wrote is actually fine and is more
efficient on a 32-bit machine.

David



More information about the linux-afs mailing list