mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
netfilter: nf_tables: fix underflow in chain reference counter
Set element addition error path decrements reference counter on chains twice: once on element release and again via nft_data_release(). Then,d6b478666f("netfilter: nf_tables: fix underflow in object reference counter") incorrectly fixed this by removing the stateful object reference count decrement. Restore the stateful object decrement as inb91d903688("netfilter: nf_tables: fix leaking object reference count") and let nft_data_release() decrement the chain reference counter, so this is done only once. Fixes:d6b478666f("netfilter: nf_tables: fix underflow in object reference counter") Fixes:628bd3e49c("netfilter: nf_tables: drop map element references from preparation phase") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
3e70489721
commit
b389139f12
|
|
@ -6771,7 +6771,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
|
|||
err_element_clash:
|
||||
kfree(trans);
|
||||
err_elem_free:
|
||||
nft_set_elem_destroy(set, elem.priv, true);
|
||||
nf_tables_set_elem_destroy(ctx, set, elem.priv);
|
||||
if (obj)
|
||||
obj->use--;
|
||||
err_parse_data:
|
||||
if (nla[NFTA_SET_ELEM_DATA] != NULL)
|
||||
nft_data_release(&elem.data.val, desc.type);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user