From 4e718641397c876315a87db441afc53139863122 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Fri, 4 Mar 2022 11:30:55 +0100 Subject: evaluate: init cmd pointer for new on-stack context else, this will segfault when trying to print the "table 'x' doesn't exist" error message. Signed-off-by: Florian Westphal --- src/evaluate.c | 1 + tests/shell/testcases/chains/0041chain_binding_0 | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/evaluate.c b/src/evaluate.c index 2732f5f4..07a4b0ad 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -3425,6 +3425,7 @@ static int stmt_evaluate_chain(struct eval_ctx *ctx, struct stmt *stmt) struct eval_ctx rule_ctx = { .nft = ctx->nft, .msgs = ctx->msgs, + .cmd = ctx->cmd, }; struct handle h2 = {}; diff --git a/tests/shell/testcases/chains/0041chain_binding_0 b/tests/shell/testcases/chains/0041chain_binding_0 index 59bdbe9f..4b541bb5 100755 --- a/tests/shell/testcases/chains/0041chain_binding_0 +++ b/tests/shell/testcases/chains/0041chain_binding_0 @@ -1,5 +1,11 @@ #!/bin/bash +# no table x, caused segfault in earlier nft releases +$NFT insert rule inet x y handle 107 'goto { log prefix "MOO! "; }' +if [ $? -ne 1 ]; then + exit 1 +fi + set -e EXPECTED="table inet x { -- cgit v1.2.3