diff options
author | Florian Westphal <fw@strlen.de> | 2016-01-27 02:53:51 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2016-01-27 16:39:41 +0100 |
commit | dcbfc8b14231f43695019ed456a355e37e4a8c84 (patch) | |
tree | dcaf9de0245d79a077c82b7950f0e92ed36667da /tests | |
parent | 7ecca3b785a67c5783ca61119d4490963837b0f0 (diff) |
netlink_delinearize: only remove protocol if equal cmp is used
Check for OP_EQ before removing a dependency, else we may zap wrong one,
changing the meaning of the rule.
Listing without patch:
ip protocol udp udp dport ssh
ip protocol udp udp dport ssh
counter packets 1 bytes 308 ip protocol udp udp dport ssh
With patch:
ip protocol != tcp udp dport ssh
ip protocol != udp udp dport ssh
ip protocol != tcp counter packets 1 bytes 308 udp dport ssh
Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/py/ip/tcp.t | 6 | ||||
-rw-r--r-- | tests/py/ip/tcp.t.payload | 18 |
2 files changed, 24 insertions, 0 deletions
diff --git a/tests/py/ip/tcp.t b/tests/py/ip/tcp.t new file mode 100644 index 00000000..4dcfcb6b --- /dev/null +++ b/tests/py/ip/tcp.t @@ -0,0 +1,6 @@ +:input;type filter hook input priority 0 + +*ip;test-ip;input + +ip protocol tcp tcp dport ssh accept;ok;tcp dport 22 accept +ip protocol ne tcp udp dport ssh accept;ok;ip protocol != 6 udp dport 22 accept diff --git a/tests/py/ip/tcp.t.payload b/tests/py/ip/tcp.t.payload new file mode 100644 index 00000000..ed0dcc84 --- /dev/null +++ b/tests/py/ip/tcp.t.payload @@ -0,0 +1,18 @@ +# ip protocol tcp tcp dport ssh accept +ip test-ip input + [ payload load 1b @ network header + 9 => reg 1 ] + [ cmp eq reg 1 0x00000006 ] + [ payload load 2b @ transport header + 2 => reg 1 ] + [ cmp eq reg 1 0x00001600 ] + [ immediate reg 0 accept ] + +# ip protocol ne tcp udp dport ssh accept +ip test-ip input + [ payload load 1b @ network header + 9 => reg 1 ] + [ cmp neq reg 1 0x00000006 ] + [ payload load 1b @ network header + 9 => reg 1 ] + [ cmp eq reg 1 0x00000011 ] + [ payload load 2b @ transport header + 2 => reg 1 ] + [ cmp eq reg 1 0x00001600 ] + [ immediate reg 0 accept ] + |