| From 5aa4995f8049baeb507b66bec17d8c9c6000013d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 5 Dec 2019 13:35:11 +0100 |
| Subject: netfilter: uapi: Avoid undefined left-shift in xt_sctp.h |
| |
| From: Phil Sutter <phil@nwl.cc> |
| |
| [ 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 | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/include/uapi/linux/netfilter/xt_sctp.h b/include/uapi/linux/netfilter/xt_sctp.h |
| index 4bc6d1a08781..b4d804a9fccb 100644 |
| --- a/include/uapi/linux/netfilter/xt_sctp.h |
| +++ b/include/uapi/linux/netfilter/xt_sctp.h |
| @@ -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) \ |
| -- |
| 2.20.1 |
| |