netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
authorPhil Sutter <phil@nwl.cc>
Thu, 5 Dec 2019 12:35:11 +0000 (13:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Jan 2020 11:17:08 +0000 (12:17 +0100)
[ Upstream commit 164166558aacea01b99c8c8ffb710d930405ba69 ]

With 'bytes(__u32)' being 32, a left-shift of 31 may happen which is
undefined for the signed 32-bit value 1. Avoid this by declaring 1 as
unsigned.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/uapi/linux/netfilter/xt_sctp.h

index 4bc6d1a..b4d804a 100644 (file)
@@ -41,19 +41,19 @@ struct xt_sctp_info {
 #define SCTP_CHUNKMAP_SET(chunkmap, type)              \
        do {                                            \
                (chunkmap)[type / bytes(__u32)] |=      \
-                       1 << (type % bytes(__u32));     \
+                       1u << (type % bytes(__u32));    \
        } while (0)
 
 #define SCTP_CHUNKMAP_CLEAR(chunkmap, type)                    \
        do {                                                    \
                (chunkmap)[type / bytes(__u32)] &=              \
-                       ~(1 << (type % bytes(__u32)));  \
+                       ~(1u << (type % bytes(__u32))); \
        } while (0)
 
 #define SCTP_CHUNKMAP_IS_SET(chunkmap, type)                   \
 ({                                                             \
        ((chunkmap)[type / bytes (__u32)] &             \
-               (1 << (type % bytes (__u32)))) ? 1: 0;  \
+               (1u << (type % bytes (__u32)))) ? 1: 0; \
 })
 
 #define SCTP_CHUNKMAP_RESET(chunkmap) \