]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
netlink_delinearize: release last register on exit
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 13 May 2022 14:46:31 +0000 (16:46 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 16 May 2022 11:44:57 +0000 (13:44 +0200)
netlink_release_registers() does not release the expression in the last
32-bit register.

struct netlink_parse_ctx {
...
        struct expr             *registers[MAX_REGS + 1];

This array is MAX_REGS + 1 (verdict register + 16 32-bit registers).

Fixes: 371c3a0bc3c2 ("netlink_delinearize: release expressions in context registers")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/netlink_delinearize.c

index a1b00dee209a44076107d127c878b32b4885b389..068c3bba1159fc71c3027d2cac630b860dba3c0d 100644 (file)
@@ -100,7 +100,7 @@ static void netlink_release_registers(struct netlink_parse_ctx *ctx)
 {
        int i;
 
-       for (i = 0; i < MAX_REGS; i++)
+       for (i = 0; i <= MAX_REGS; i++)
                expr_free(ctx->registers[i]);
 }