summaryrefslogtreecommitdiffstats
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
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)
-rw-r--r--Makefile2
-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
5 files changed, 9 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index deb8d2f..36f700c 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@ ifndef V
V=0
endif
-IPSET_VERSION:=4.3
+IPSET_VERSION:=4.4
PREFIX:=/usr/local
LIBDIR:=$(PREFIX)/lib
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;