summaryrefslogtreecommitdiffstats
path: root/extensions/libxt_conntrack.t
diff options
context:
space:
mode:
authorQuentin Armitage <quentin@armitage.org.uk>2013-11-23 08:41:58 +0000
committerPhil Sutter <phil@nwl.cc>2023-09-14 12:20:11 +0200
commit2e704f6ddd6d056e360f3d9c11e8b6c56a20cf23 (patch)
tree0c703ad982fdf243878738005ccae75f4d4039c6 /extensions/libxt_conntrack.t
parent35ff97e9aca8cd301ff9b9a95b0a72de1aeb700b (diff)
extensions: Fix checking of conntrack --ctproto 0
There are three issues in the code: 1) the check (sinfo->invflags & XT_INV_PROTO) is using the wrong mask 2) in conntrack_mt_parse it is testing (info->invert_flags & XT_INV_PROTO) before the invert bit has been set. 3) the sense of the error message is the wrong way round 1) To get the error, ! -ctstatus XXX has to be specified, since XT_INV_PROTO == XT_CONNTRACK_STATUS e.g. | iptables -I CHAIN -m conntrack ! --ctstatus ASSURED --ctproto 0 ... 3) Unlike --proto 0 (where 0 means all protocols), in the conntrack match --ctproto 0 appears to mean protocol 0, which can never be. Therefore --ctproto 0 could never match and ! --ctproto 0 will always match. Both of these should be rejected, since the user clearly cannot be intending what was specified. The attached patch resolves the issue, and also produces an error message if --ctproto 0 is specified (as well as ! --ctproto 0 ), since --ctproto 0 will never match, and ! --ctproto 0 will always match. [Phil: - Added Fixes: tag - it's a day 1 bug - Copied patch description from Bugzilla - Reorganized changes to reduce diff - Added test cases] Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=874 Fixes: 5054e85be3068 ("general conntrack match module userspace support files") Signed-off-by: Quentin Armitage <quentin@armitage.org.uk> Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'extensions/libxt_conntrack.t')
-rw-r--r--extensions/libxt_conntrack.t2
1 files changed, 2 insertions, 0 deletions
diff --git a/extensions/libxt_conntrack.t b/extensions/libxt_conntrack.t
index db531475..2b3c5de9 100644
--- a/extensions/libxt_conntrack.t
+++ b/extensions/libxt_conntrack.t
@@ -25,3 +25,5 @@
-m conntrack --ctstatus EXPECTED;=;OK
-m conntrack --ctstatus SEEN_REPLY;=;OK
-m conntrack;;FAIL
+-m conntrack --ctproto 0;;FAIL
+-m conntrack ! --ctproto 0;;FAIL