]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
evaluate: Drop dead code from expr_evaluate_mapping()
authorPhil Sutter <phil@nwl.cc>
Fri, 25 Aug 2023 11:49:31 +0000 (13:49 +0200)
committerPhil Sutter <phil@nwl.cc>
Tue, 29 Aug 2023 16:12:55 +0000 (18:12 +0200)
Since commit 343a51702656a ("src: store expr, not dtype to track data in
sets"), set->data is allocated for object maps in set_evaluate(), all
other map types have set->data initialized by the parser already,
set_evaluate() also checks that.

Drop the confusing check, later in the function set->data is
dereferenced unconditionally.

Fixes: 343a51702656a ("src: store expr, not dtype to track data in sets")
Signed-off-by: Phil Sutter <phil@nwl.cc>
src/evaluate.c

index 1ae2ef0de10c8573f1fce8a549b6739609b06e4e..eb834eae899123b82c7c25e380916f44e9481938 100644 (file)
@@ -2062,17 +2062,14 @@ static int expr_evaluate_mapping(struct eval_ctx *ctx, struct expr **expr)
                                  "Key must be a constant");
        mapping->flags |= mapping->left->flags & EXPR_F_SINGLETON;
 
-       if (set->data) {
-               if (!set_is_anonymous(set->flags) &&
-                   set->data->flags & EXPR_F_INTERVAL)
-                       datalen = set->data->len / 2;
-               else
-                       datalen = set->data->len;
-
-               __expr_set_context(&ctx->ectx, set->data->dtype, set->data->byteorder, datalen, 0);
-       } else {
-               assert((set->flags & NFT_SET_MAP) == 0);
-       }
+       assert(set->data != NULL);
+       if (!set_is_anonymous(set->flags) &&
+           set->data->flags & EXPR_F_INTERVAL)
+               datalen = set->data->len / 2;
+       else
+               datalen = set->data->len;
+       __expr_set_context(&ctx->ectx, set->data->dtype,
+                          set->data->byteorder, datalen, 0);
 
        if (expr_evaluate(ctx, &mapping->right) < 0)
                return -1;