From: Pablo Neira Ayuso <pablo@netfilter.org> Date: Mon, 29 Jan 2024 10:09:43 +0000 (+0100) Subject: netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger X-Git-Tag: nvme-6.9-2024-03-07~175^2~2^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=259eb32971e9eb24d1777a28d82730659f50fdcb;p=nvme.git netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger 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> --- diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index 8cc52d2bd31b..e16f158388bb 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);