summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2023-08-25 13:49:31 +0200
committerPhil Sutter <phil@nwl.cc>2023-08-29 18:12:55 +0200
commit41f8628f6fb8340dde21e1295191a2d131c1a8df (patch)
tree9ecc7221bdf3509839ee7b87fdd23ebb8011cb85
parentc9091421f0132e66b74683f734ef77b443412fe0 (diff)
evaluate: Drop dead code from expr_evaluate_mapping()
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>
-rw-r--r--src/evaluate.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 1ae2ef0d..eb834eae 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -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;