From 08c596ce6f4f912e823d65edca761c27df7cb511 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Tue, 27 Jul 2021 17:23:34 +0200 Subject: evaluate: disallow negation with binary operation The negation was introduced to provide a simple shortcut. Extend e6c32b2fa0b8 ("src: add negation match on singleton bitmask value") to disallow negation with binary operations too. # nft add rule meh tcp_flags 'tcp flags & (fin | syn | rst | ack) ! syn' Error: cannot combine negation with binary expression add rule meh tcp_flags tcp flags & (fin | syn | rst | ack) ! syn ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ~~~ Signed-off-by: Pablo Neira Ayuso --- tests/py/inet/tcp.t | 1 + 1 file changed, 1 insertion(+) (limited to 'tests/py') diff --git a/tests/py/inet/tcp.t b/tests/py/inet/tcp.t index 983564ec..13b84215 100644 --- a/tests/py/inet/tcp.t +++ b/tests/py/inet/tcp.t @@ -75,6 +75,7 @@ tcp flags & (fin | syn | rst | psh | ack | urg | ecn | cwr) == fin | syn | rst | tcp flags { syn, syn | ack };ok tcp flags & (fin | syn | rst | psh | ack | urg) == { fin, ack, psh | ack, fin | psh | ack };ok tcp flags ! fin,rst;ok +tcp flags & (fin | syn | rst | ack) ! syn;fail tcp window 22222;ok tcp window 22;ok -- cgit v1.2.3