packet: Fix undefined behavior in bit shift
authorJiunn Chang <c0d1n61at3@gmail.com>
Thu, 27 Jun 2019 03:25:30 +0000 (22:25 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Jun 2019 18:06:17 +0000 (11:06 -0700)
Shifting signed 32-bit value by 31 bits is undefined.  Changing most
significant bit to unsigned.

Changes included in v2:
  - use subsystem specific subject lines
  - CC required mailing lists

Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/if_packet.h

index 467b654..3d884d6 100644 (file)
@@ -123,7 +123,7 @@ struct tpacket_auxdata {
 /* Rx and Tx ring - header status */
 #define TP_STATUS_TS_SOFTWARE          (1 << 29)
 #define TP_STATUS_TS_SYS_HARDWARE      (1 << 30) /* deprecated, never set */
-#define TP_STATUS_TS_RAW_HARDWARE      (1 << 31)
+#define TP_STATUS_TS_RAW_HARDWARE      (1U << 31)
 
 /* Rx ring - feature request bits */
 #define TP_FT_REQ_FILL_RXHASH  0x1