]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
set_elem: Fix memory leak
authorCarlos Falgueras García <carlosfg@riseup.net>
Tue, 24 May 2016 15:17:07 +0000 (17:17 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 25 May 2016 08:28:53 +0000 (10:28 +0200)
User data must be freed.

How to reproduce:
    > nft add table t
    > nft add set t s {type ipv4_addr\;}
    > valgrind nft add element t s {1.1.1.1}

Signed-off-by: Carlos Falgueras García <carlosfg@riseup.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/set_elem.c

index 353f21eb9134794108d741553475bdeaeaa68f82..990be2461a734111f1b22a1df6f3625295a00b21 100644 (file)
@@ -51,6 +51,9 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s)
        if (s->flags & (1 << NFTNL_SET_ELEM_EXPR))
                nftnl_expr_free(s->expr);
 
+       if (s->flags & (1 << NFTNL_SET_ELEM_USERDATA))
+               xfree(s->user.data);
+
        xfree(s);
 }
 EXPORT_SYMBOL_ALIAS(nftnl_set_elem_free, nft_set_elem_free);