mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +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:
@@ -6771,7 +6771,9 @@ err_set_full:
|
|||||||
err_element_clash:
|
err_element_clash:
|
||||||
kfree(trans);
|
kfree(trans);
|
||||||
err_elem_free:
|
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:
|
err_parse_data:
|
||||||
if (nla[NFTA_SET_ELEM_DATA] != NULL)
|
if (nla[NFTA_SET_ELEM_DATA] != NULL)
|
||||||
nft_data_release(&elem.data.val, desc.type);
|
nft_data_release(&elem.data.val, desc.type);
|
||||||
|
Reference in New Issue
Block a user