mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
netfilter: nf_tables: Keep deleted flowtable hooks until after RCU
[ Upstream commit 642c89c475419b4d0c0d90e29d9c1a0e4351f379 ]
Documentation of list_del_rcu() warns callers to not immediately free
the deleted list item. While it seems not necessary to use the
RCU-variant of list_del() here in the first place, doing so seems to
require calling kfree_rcu() on the deleted item as well.
Fixes: 3f0465a9ef ("netfilter: nf_tables: dynamically allocate hooks per net_device in flowtables")
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b600ccc041
commit
8ae12602d9
@@ -8619,7 +8619,7 @@ static void nf_tables_flowtable_destroy(struct nft_flowtable *flowtable)
|
|||||||
flowtable->data.type->setup(&flowtable->data, hook->ops.dev,
|
flowtable->data.type->setup(&flowtable->data, hook->ops.dev,
|
||||||
FLOW_BLOCK_UNBIND);
|
FLOW_BLOCK_UNBIND);
|
||||||
list_del_rcu(&hook->list);
|
list_del_rcu(&hook->list);
|
||||||
kfree(hook);
|
kfree_rcu(hook, rcu);
|
||||||
}
|
}
|
||||||
kfree(flowtable->name);
|
kfree(flowtable->name);
|
||||||
module_put(flowtable->data.type->owner);
|
module_put(flowtable->data.type->owner);
|
||||||
|
|||||||
Reference in New Issue
Block a user