diff options
author | Phil Sutter <phil@nwl.cc> | 2023-08-25 13:49:31 +0200 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2023-08-29 18:12:55 +0200 |
commit | 41f8628f6fb8340dde21e1295191a2d131c1a8df (patch) | |
tree | 9ecc7221bdf3509839ee7b87fdd23ebb8011cb85 /src | |
parent | c9091421f0132e66b74683f734ef77b443412fe0 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/evaluate.c | 19 |
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; |