]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
evaluate: don't crash on set definition with incorrect datatype
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 10 May 2021 16:52:47 +0000 (18:52 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 11 May 2021 19:39:01 +0000 (21:39 +0200)
Cache updates have resurrected the bug described in 5afa5a164ff1
("evaluate: check for NULL datatype in rhs in lookup expr").

This is triggered by testcases/cache/0008_delete_by_handle_0.

Fixes: df48e56e987f ("cache: add hashtable cache for sets")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/evaluate.c

index 95189180fe89bf611e0e07761bbbe4bd4c278f47..2e31ed10ccb798c2aee4144f53b6696f8ab563c0 100644 (file)
@@ -262,7 +262,7 @@ static int expr_evaluate_symbol(struct eval_ctx *ctx, struct expr **expr)
                        return table_not_found(ctx);
 
                set = set_cache_find(table, (*expr)->identifier);
-               if (set == NULL)
+               if (set == NULL || !set->key)
                        return set_not_found(ctx, &(*expr)->location,
                                             (*expr)->identifier);