inetdevice: fixed signed integer overflow
authorVincent BENAYOUN <vincent.benayoun@trust-in-soft.com>
Thu, 13 Nov 2014 12:47:26 +0000 (13:47 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Nov 2014 22:08:58 +0000 (17:08 -0500)
commit84bc88688e3f6ef843aa8803dbcd90168bb89faf
treeca917b50323869b5821f46ca6e0d901d0a6053f9
parentb23dc5a7cc6ebc9a0d57351da7a0e8454c9ffea3
inetdevice: fixed signed integer overflow

There could be a signed overflow in the following code.

The expression, (32-logmask) is comprised between 0 and 31 included.
It may be equal to 31.
In such a case the left shift will produce a signed integer overflow.
According to the C99 Standard, this is an undefined behavior.
A simple fix is to replace the signed int 1 with the unsigned int 1U.

Signed-off-by: Vincent BENAYOUN <vincent.benayoun@trust-in-soft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/inetdevice.h