diff mbox series

netfilter: nf_log_syslog: Unset bridge logger in pernet exit

Message ID 20210421103421.6168-1-phil@nwl.cc
State Accepted
Delegated to: Pablo Neira
Headers show
Series netfilter: nf_log_syslog: Unset bridge logger in pernet exit | expand

Commit Message

Phil Sutter April 21, 2021, 10:34 a.m. UTC
Without this, a stale pointer remains in pernet loggers after module
unload causing a kernel oops during dereference. Easily reproduced by:

| # modprobe nf_log_syslog
| # rmmod nf_log_syslog
| # cat /proc/net/netfilter/nf_log

Fixes: 77ccee96a6742 ("netfilter: nf_log_bridge: merge with nf_log_syslog")
Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 net/netfilter/nf_log_syslog.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Florian Westphal April 21, 2021, 1:43 p.m. UTC | #1
Phil Sutter <phil@nwl.cc> wrote:
> Without this, a stale pointer remains in pernet loggers after module
> unload causing a kernel oops during dereference. Easily reproduced by:
> 
> | # modprobe nf_log_syslog
> | # rmmod nf_log_syslog
> | # cat /proc/net/netfilter/nf_log

Ouch, thanks for fixing this.

Acked-by: Florian Westphal <fw@strlen.de>
Pablo Neira Ayuso April 26, 2021, 1:25 a.m. UTC | #2
On Wed, Apr 21, 2021 at 12:34:21PM +0200, Phil Sutter wrote:
> Without this, a stale pointer remains in pernet loggers after module
> unload causing a kernel oops during dereference. Easily reproduced by:
> 
> | # modprobe nf_log_syslog
> | # rmmod nf_log_syslog
> | # cat /proc/net/netfilter/nf_log

Applied, thanks.
diff mbox series

Patch

diff --git a/net/netfilter/nf_log_syslog.c b/net/netfilter/nf_log_syslog.c
index 025ab9c66d13e..5391eec0a44c5 100644
--- a/net/netfilter/nf_log_syslog.c
+++ b/net/netfilter/nf_log_syslog.c
@@ -1011,6 +1011,7 @@  static void __net_exit nf_log_syslog_net_exit(struct net *net)
 	nf_log_unset(net, &nf_arp_logger);
 	nf_log_unset(net, &nf_ip6_logger);
 	nf_log_unset(net, &nf_netdev_logger);
+	nf_log_unset(net, &nf_bridge_logger);
 }
 
 static struct pernet_operations nf_log_syslog_net_ops = {