Skip to content

Commit 715c8e7

Browse files
committed
evaluate: propagate binop_transfer() adjustment to set key size
The right shift transfer may be result in adjusting the set key size, eg. ip6 dscp results in fetching 6 bits that are splitted between two bytes, hence the set element ends up being 16 bytes long. Reported-by: Florian Westphal <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]>
1 parent 63d2e9d commit 715c8e7

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/evaluate.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -1282,8 +1282,9 @@ static int expr_evaluate_map(struct eval_ctx *ctx, struct expr **expr)
12821282
if (binop_transfer(ctx, expr) < 0)
12831283
return -1;
12841284

1285-
map = *expr;
1285+
ctx->set->key->len = ctx->ectx.len;
12861286
ctx->set = NULL;
1287+
map = *expr;
12871288
map->mappings->set->flags |= map->mappings->set->init->set_flags;
12881289
break;
12891290
case EXPR_SYMBOL:

0 commit comments

Comments
 (0)