]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
src: Fix leak in nftnl_*_unset()
authorCarlos Falgueras García <carlosfg@riseup.net>
Fri, 10 Jun 2016 12:22:45 +0000 (14:22 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 14 Jun 2016 15:44:00 +0000 (17:44 +0200)
Fix leak of NFTNL_*_USERDATA from unset() functions.

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

index 8ee8648aad92308eaeb4d8bebf3e622badf5bd49..04cadaee39199fc143c48f2ff456657841fa0184 100644 (file)
@@ -111,7 +111,9 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
        case NFTNL_RULE_COMPAT_FLAGS:
        case NFTNL_RULE_POSITION:
        case NFTNL_RULE_FAMILY:
+               break;
        case NFTNL_RULE_USERDATA:
+               xfree(r->user.data);
                break;
        }
 
index b9c7e1e728308dfc590721fb5c2c950fd5cfe7ac..36289e50764bc647d384fa8c20c1d92f31eb0ddb 100644 (file)
@@ -81,7 +81,9 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
        case NFTNL_SET_ELEM_DATA:       /* NFTA_SET_ELEM_DATA */
        case NFTNL_SET_ELEM_TIMEOUT:    /* NFTA_SET_ELEM_TIMEOUT */
        case NFTNL_SET_ELEM_EXPIRATION: /* NFTA_SET_ELEM_EXPIRATION */
+               break;
        case NFTNL_SET_ELEM_USERDATA:   /* NFTA_SET_ELEM_USERDATA */
+               xfree(s->user.data);
                break;
        case NFTNL_SET_ELEM_EXPR:
                if (s->flags & (1 << NFTNL_SET_ELEM_EXPR)) {