summaryrefslogtreecommitdiffstats
path: root/src/evaluate.c
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2023-11-30 21:29:52 +0100
committerFlorian Westphal <fw@strlen.de>2023-12-01 12:26:49 +0100
commit09c573053ff03ad0a2eeb12c2957881648062f50 (patch)
tree7b1bd1982b01218e3e38db5dd8b39c5f1983168a /src/evaluate.c
parent4890211e188a055d686f5522b40bbdd41e75216c (diff)
evaluate: reject sets with no key
nft --check -f tests/shell/testcases/bogons/nft-f/set_without_key Segmentation fault (core dumped) Fixes: 56c90a2dd2eb ("evaluate: expand sets and maps before evaluation") Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src/evaluate.c')
-rw-r--r--src/evaluate.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 2ead0347..048880e5 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -4621,6 +4621,9 @@ static int elems_evaluate(struct eval_ctx *ctx, struct set *set)
{
ctx->set = set;
if (set->init != NULL) {
+ if (set->key == NULL)
+ return set_error(ctx, set, "set definition does not specify key");
+
__expr_set_context(&ctx->ectx, set->key->dtype,
set->key->byteorder, set->key->len, 0);
if (expr_evaluate(ctx, &set->init) < 0)