summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2024-01-29 11:09:43 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-02-05 20:13:02 +0000
commit9ff981cd65cd0843138bb3b1aca8c1d96e799bc2 (patch)
tree101b5a3993518df54a79f668cc7cb0af109b4dad
parent67f0ca0a4c85a0d067fac287d508e598c1c0a4be (diff)
downloadlinux-stable-9ff981cd65cd0843138bb3b1aca8c1d96e799bc2.tar.gz
linux-stable-9ff981cd65cd0843138bb3b1aca8c1d96e799bc2.tar.bz2
linux-stable-9ff981cd65cd0843138bb3b1aca8c1d96e799bc2.zip
netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
[ Upstream commit 259eb32971e9eb24d1777a28d82730659f50fdcb ] Module reference is bumped for each user, this should not ever happen. But BUG_ON check should use rcu_access_pointer() instead. If this ever happens, do WARN_ON_ONCE() instead of BUG_ON() and consolidate pointer check under the rcu read side lock section. Fixes: fab4085f4e24 ("netfilter: log: nf_log_packet() as real unified interface") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--net/netfilter/nf_log.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index 8a29290149bd..be93a02497d6 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -193,11 +193,12 @@ void nf_logger_put(int pf, enum nf_log_type type)
return;
}
- BUG_ON(loggers[pf][type] == NULL);
-
rcu_read_lock();
logger = rcu_dereference(loggers[pf][type]);
- module_put(logger->me);
+ if (!logger)
+ WARN_ON_ONCE(1);
+ else
+ module_put(logger->me);
rcu_read_unlock();
}
EXPORT_SYMBOL_GPL(nf_logger_put);