| From 174d4391e72db69a1c5bcf441e5bc01ef20c5174 Mon Sep 17 00:00:00 2001 |
| From: Phil Sutter <phil@nwl.cc> |
| Date: Thu, 5 Dec 2019 13:35:11 +0100 |
| Subject: [PATCH] netfilter: uapi: Avoid undefined left-shift in xt_sctp.h |
| |
| commit 164166558aacea01b99c8c8ffb710d930405ba69 upstream. |
| |
| 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| 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.7.4 |
| |