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 <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
if (binop_transfer(ctx, expr) < 0)
return -1;
- map = *expr;
+ ctx->set->key->len = ctx->ectx.len;
ctx->set = NULL;
+ map = *expr;
map->mappings->set->flags |= map->mappings->set->init->set_flags;
break;
case EXPR_SYMBOL: