summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2014-08-01 17:25:38 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2014-08-01 18:14:49 +0200
commit0dc1362562a2e8b82a6be8d3ae307a234f28f9bc (patch)
treea08ecdf611c6900b521b3b15ff6e8c9222c7f9d5 /net
parent8452e6ff3efce76335eba9d29d2a5b3b524b9f1f (diff)
downloadlinux-stable-0dc1362562a2e8b82a6be8d3ae307a234f28f9bc.tar.gz
linux-stable-0dc1362562a2e8b82a6be8d3ae307a234f28f9bc.tar.bz2
linux-stable-0dc1362562a2e8b82a6be8d3ae307a234f28f9bc.zip
netfilter: nf_tables: Avoid duplicate call to nft_data_uninit() for same key
nft_del_setelem() currently calls nft_data_uninit() twice on the same key. Once to release the key which is guaranteed to be NFT_DATA_VALUE and a second time in the error path to which it falls through. The second call has been harmless so far though because the type passed is always NFT_DATA_VALUE which is currently a no-op. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nf_tables_api.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 8746ff9a8357..b35ba833e13c 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -3218,6 +3218,7 @@ static int nft_del_setelem(struct nft_ctx *ctx, struct nft_set *set,
if (set->flags & NFT_SET_MAP)
nft_data_uninit(&elem.data, set->dtype);
+ return 0;
err2:
nft_data_uninit(&elem.key, desc.type);
err1: