diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/ChangeLog | 3 | ||||
-rw-r--r-- | kernel/ip_set_ipporthash.c | 2 | ||||
-rw-r--r-- | kernel/ip_set_ipportiphash.c | 4 | ||||
-rw-r--r-- | kernel/ip_set_ipportnethash.c | 4 |
4 files changed, 8 insertions, 5 deletions
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; |