]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
evaluate: datatype memleak after binop transfer
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 4 Oct 2022 23:36:52 +0000 (01:36 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 6 Oct 2022 13:35:23 +0000 (15:35 +0200)
The following ruleset:

ip version vmap { 4 : jump t3, 6 : jump t4 }

results in a memleak.

expr_evaluate_shift() overrides the datatype which results in a datatype
memleak after the binop transfer that triggers a left-shift of the
constant (in the map).

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/evaluate.c

index 2e2b8df0f004a0b26c36e9f028fc027fab0f0d30..0bf6a0d1b110c39881b671832f818e55fbb8bdbf 100644 (file)
@@ -1189,7 +1189,6 @@ static int expr_evaluate_shift(struct eval_ctx *ctx, struct expr **expr)
        if (byteorder_conversion(ctx, &op->right, BYTEORDER_HOST_ENDIAN) < 0)
                return -1;
 
-       op->dtype     = &integer_type;
        op->byteorder = BYTEORDER_HOST_ENDIAN;
        op->len       = left->len;