From c463a1188b9aaec1e09dfe80779173c0a015d70c Mon Sep 17 00:00:00 2001 From: Jozsef Kadlecsik Date: Fri, 1 Oct 2010 22:10:38 +0200 Subject: New version 4.4 released: kernel: - The ipporthash, ipportiphash and ipportnethash set types did not work with mixed "src" and "dst" destination parameters of the "set" and "SET" iptables match and target (reported by Dash Four) --- kernel/ChangeLog | 3 +++ kernel/ip_set_ipporthash.c | 2 +- kernel/ip_set_ipportiphash.c | 4 ++-- kernel/ip_set_ipportnethash.c | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) (limited to 'kernel') diff --git a/kernel/ChangeLog b/kernel/ChangeLog index d7b7f86..bb1aa28 100644 --- a/kernel/ChangeLog +++ b/kernel/ChangeLog @@ -1,4 +1,7 @@ 4.4 + - The ipporthash, ipportiphash and ipportnethash set types did not + work with mixed "src" and "dst" destination parameters of the + "set" and "SET" iptables match and target (reported by Dash Four) - Errorneous semaphore handling in error path fixed (reported by Jan Engelhardt, bugzilla id 668) diff --git a/kernel/ip_set_ipporthash.c b/kernel/ip_set_ipporthash.c index 36e68b0..4a79c8b 100644 --- a/kernel/ip_set_ipporthash.c +++ b/kernel/ip_set_ipporthash.c @@ -68,7 +68,7 @@ ipporthash_test(struct ip_set *set, ip_set_ip_t ip, ip_set_ip_t port) if (flags[1] == 0) \ return 0; \ \ - port = get_port(skb, flags++); \ + port = get_port(skb, ++flags); \ \ if (port == INVALID_PORT) \ return 0; diff --git a/kernel/ip_set_ipportiphash.c b/kernel/ip_set_ipportiphash.c index 8b8f2a2..c80087f 100644 --- a/kernel/ip_set_ipportiphash.c +++ b/kernel/ip_set_ipportiphash.c @@ -72,8 +72,8 @@ ipportiphash_test(struct ip_set *set, if (flags[2] == 0) \ return 0; \ \ - port = get_port(skb, flags++); \ - ip1 = ipaddr(skb, flags++); \ + port = get_port(skb, ++flags); \ + ip1 = ipaddr(skb, ++flags); \ \ if (port == INVALID_PORT) \ return 0; diff --git a/kernel/ip_set_ipportnethash.c b/kernel/ip_set_ipportnethash.c index e0bb352..2680cd9 100644 --- a/kernel/ip_set_ipportnethash.c +++ b/kernel/ip_set_ipportnethash.c @@ -116,8 +116,8 @@ ipportnethash_utest(struct ip_set *set, const void *data, u_int32_t size) if (flags[2] == 0) \ return 0; \ \ - port = get_port(skb, flags++); \ - ip1 = ipaddr(skb, flags++); \ + port = get_port(skb, ++flags); \ + ip1 = ipaddr(skb, ++flags); \ \ if (port == INVALID_PORT) \ return 0; -- cgit v1.2.3