netfilter: nf_log_syslog: Unset bridge logger in pernet exit
authorPhil Sutter <phil@nwl.cc>
Wed, 21 Apr 2021 10:34:21 +0000 (12:34 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 26 Apr 2021 01:20:47 +0000 (03:20 +0200)
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>
Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_log_syslog.c

index 2518818..1323464 100644 (file)
@@ -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 = {