| From b9f681d4228b042634e3303448f5e4231e5a062a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 26 Oct 2022 14:32:16 +0200 |
| Subject: ipvs: use explicitly signed chars |
| |
| From: Jason A. Donenfeld <Jason@zx2c4.com> |
| |
| [ Upstream commit 5c26159c97b324dc5174a5713eafb8c855cf8106 ] |
| |
| The `char` type with no explicit sign is sometimes signed and sometimes |
| unsigned. This code will break on platforms such as arm, where char is |
| unsigned. So mark it here as explicitly signed, so that the |
| todrop_counter decrement and subsequent comparison is correct. |
| |
| Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Acked-by: Julian Anastasov <ja@ssi.bg> |
| Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/netfilter/ipvs/ip_vs_conn.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c |
| index 1ecce76bc266..eb58a930fbdf 100644 |
| --- a/net/netfilter/ipvs/ip_vs_conn.c |
| +++ b/net/netfilter/ipvs/ip_vs_conn.c |
| @@ -1240,8 +1240,8 @@ static inline int todrop_entry(struct ip_vs_conn *cp) |
| * The drop rate array needs tuning for real environments. |
| * Called from timer bh only => no locking |
| */ |
| - static const char todrop_rate[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; |
| - static char todrop_counter[9] = {0}; |
| + static const signed char todrop_rate[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; |
| + static signed char todrop_counter[9] = {0}; |
| int i; |
| |
| /* if the conn entry hasn't lasted for 60 seconds, don't drop it. |
| -- |
| 2.35.1 |
| |