mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
netfilter: nf_tables: fix underflow in chain reference counter
commitb389139f12upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
35651fde1a
commit
b068314fd8
@@ -6571,7 +6571,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