netfilter: nf_tables: free set name in error path
authorFlorian Westphal <fw@strlen.de>
Tue, 10 Apr 2018 07:00:24 +0000 (09:00 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 16 Apr 2018 15:47:27 +0000 (17:47 +0200)
set->name must be free'd here in case ops->init fails.

Fixes: 387454901bd6 ("netfilter: nf_tables: Allow set names of up to 255 chars")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c

index b1984f8f72535b11937be9108693f8402b5b4c74..102ad873acb434ae82ddc5924c50cfa705f6eb61 100644 (file)
@@ -3212,18 +3212,20 @@ static int nf_tables_newset(struct net *net, struct sock *nlsk,
 
        err = ops->init(set, &desc, nla);
        if (err < 0)
-               goto err2;
+               goto err3;
 
        err = nft_trans_set_add(&ctx, NFT_MSG_NEWSET, set);
        if (err < 0)
-               goto err3;
+               goto err4;
 
        list_add_tail_rcu(&set->list, &table->sets);
        table->use++;
        return 0;
 
-err3:
+err4:
        ops->destroy(set);
+err3:
+       kfree(set->name);
 err2:
        kvfree(set);
 err1: