summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2010-10-01 22:10:38 +0200
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2010-10-01 22:10:38 +0200
commitc463a1188b9aaec1e09dfe80779173c0a015d70c (patch)
tree2116c73c7cf25763f5318a1a6b434cf5dedfe9de /kernel
parent0af0e2af9e425aeab35bd4111d1f9ced47c65279 (diff)
New version 4.4 released:v4.4
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)
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ChangeLog3
-rw-r--r--kernel/ip_set_ipporthash.c2
-rw-r--r--kernel/ip_set_ipportiphash.c4
-rw-r--r--kernel/ip_set_ipportnethash.c4
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;