netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state
authorFlorian Westphal <fw@strlen.de>
Mon, 3 Aug 2026 08:43:27 +0000 (10:43 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 10 Aug 2026 18:26:37 +0000 (20:26 +0200)
commit33d1469b0124cc0baaea7a2032123b77a81e0940
tree930839eada4b267ca8b3ff455f9a950d32c926d2
parent2d19b95c9723001f214f7a47d67b09f46238f200
netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state

sashiko reports: "nfnl_log_net_exit() calls nf_log_unset(), which
clears the logger pointer without an RCU grace period.  Immediately after,
ops_free_list() frees the per-net state while concurrent packets might
still be executing nf_log_packet() under rcu_read_lock()."

Clear the pointer via .pre_exit to make sure rcu readers have completed
before pernet storage is free'd.  The change in nf_log_syslog.c is only
done for consistency: it doesn't use pernet data.

Link: https://sashiko.dev/#/patchset/20260731151806.849724-1-pablo%40netfilter.org
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_log_syslog.c
net/netfilter/nfnetlink_log.c