Commit 259eb329 authored by Pablo Neira Ayuso's avatar Pablo Neira Ayuso
Browse files

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: fab4085f ("netfilter: log: nf_log_packet() as real unified interface")
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 97f7cf1c
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -193,10 +193,11 @@ 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]);
	if (!logger)
		WARN_ON_ONCE(1);
	else
		module_put(logger->me);
	rcu_read_unlock();
}