Re: [PATCH] atm: he: fix sign-extension overflow on large shift

From: David Miller
Date: Thu Jan 17 2019 - 14:47:56 EST


From: Colin King <colin.king@xxxxxxxxxxxxx>
Date: Tue, 15 Jan 2019 18:03:38 +0000

> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Shifting the 1 by exp by an int can lead to sign-extension overlow when
> exp is 31 since 1 is an signed int and sign-extending this result to an
> unsigned long long will set the upper 32 bits. Fix this by shifting an
> unsigned long.
>
> Detected by cppcheck:
> (warning) Shifting signed 32-bit value by 31 bits is undefined behaviour
>
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>

Applied.