]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
libnftables: memleak when list of commands is empty
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 27 Sep 2019 06:37:12 +0000 (08:37 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 27 Sep 2019 06:41:58 +0000 (08:41 +0200)
==9946== 200,807 (40 direct, 200,767 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 4
==9946==    at 0x4837B65: calloc (vg_replace_malloc.c:762)
==9946==    by 0x4F28216: nftnl_batch_alloc (batch.c:66)
==9946==    by 0x48A33E8: mnl_batch_init (mnl.c:164)
==9946==    by 0x48A736F: nft_netlink.isra.0 (libnftables.c:29)
==9946==    by 0x48A7D03: nft_run_cmd_from_filename (libnftables.c:508)
==9946==    by 0x10A621: main (main.c:328)

Fixes: fc6d0f8b0cb1 ("libnftables: get rid of repeated initialization of netlink_ctx")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/libnftables.c

index a19636b22683641ec5d782c89786b7e2704fc7e7..e20372438db622e63e9cdd4697a9f1087c4e8235 100644 (file)
@@ -34,7 +34,7 @@ static int nft_netlink(struct nft_ctx *nft,
        int ret = 0;
 
        if (list_empty(cmds))
-               return 0;
+               goto out;
 
        batch_seqnum = mnl_batch_begin(ctx.batch, mnl_seqnum_alloc(&seqnum));
        list_for_each_entry(cmd, cmds, list) {