summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2021-12-03 17:07:55 +0100
committerFlorian Westphal <fw@strlen.de>2021-12-07 12:23:22 +0100
commit48aca2de80a7dd73f8f3a461c7f7ed47b6082766 (patch)
tree3ab36458bdef07e5d8c78ad364b77c21ffaad123 /tests
parent028856b3dd8c935bc53ff08434dce4728627a318 (diff)
iptopt: fix crash with invalid field/type combo
% nft describe ip option rr value segmentation fault after this fix, this exits with 'Error: unknown ip option type/field'. Problem is that 'rr' doesn't have a value template, so the template struct is all-zeroes, so we crash when trying to use tmpl->dtype (its NULL). Furthermore, expr_describe tries to print expr->identifier but expr is exthdr, not symbol: ->identifier contains garbage. Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/shell/testcases/parsing/describe7
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/shell/testcases/parsing/describe b/tests/shell/testcases/parsing/describe
new file mode 100755
index 00000000..2ee072e8
--- /dev/null
+++ b/tests/shell/testcases/parsing/describe
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+errmsg='Error: unknown ip option type/field'
+
+str=$($NFT describe ip option rr value 2>&1 | head -n 1)
+
+[ "$str" = "$errmsg" ] && exit 0