summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen-ichirou MATSUZAWA <chamaken@gmail.com>2015-10-07 13:25:50 +0900
committerPablo Neira Ayuso <pablo@netfilter.org>2015-10-12 21:44:12 +0200
commit914eebf2f434c6c0355faa9d81b4ebdca94819c9 (patch)
tree811f23e8341ba8874ab11b588839c552af73f228
parentc9322458119ecf2e5cf41dcb204aaf67238b2147 (diff)
netfilter: nfnetlink_log: autoload nf_conntrack_netlink module NFQA_CFG_F_CONNTRACK config flag
This patch enables to load nf_conntrack_netlink module if NFULNL_CFG_F_CONNTRACK config flag is specified. Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--net/netfilter/nfnetlink_log.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index e1d1187f6646..f8d9bd848f79 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -927,7 +927,16 @@ nfulnl_recv_config(struct sock *ctnl, struct sk_buff *skb,
}
if (flags & NFULNL_CFG_F_CONNTRACK &&
- rcu_access_pointer(nfnl_ct_hook) == NULL) {
+ !rcu_access_pointer(nfnl_ct_hook)) {
+#ifdef CONFIG_MODULES
+ nfnl_unlock(NFNL_SUBSYS_ULOG);
+ request_module("ip_conntrack_netlink");
+ nfnl_lock(NFNL_SUBSYS_ULOG);
+ if (rcu_access_pointer(nfnl_ct_hook)) {
+ ret = -EAGAIN;
+ goto out;
+ }
+#endif
ret = -EOPNOTSUPP;
goto out;
}