diff options
author | Hans Schillstrom <hans@schillstrom.com> | 2013-05-14 21:23:45 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-05-15 08:11:07 -0400 |
commit | 8cdb46da06ea94543a3b2e53e3e92736421d1093 (patch) | |
tree | 2f3d5703ee736daf10a3556c5c80f6bcca8731b8 /include/net | |
parent | 42010ed0c669aeb1c5b015f5edf590c73919380c (diff) |
netfilter: log: netns NULL ptr bug when calling from conntrack
Since (69b34fb netfilter: xt_LOG: add net namespace support
for xt_LOG), we hit this:
[ 4224.708977] BUG: unable to handle kernel NULL pointer dereference at 0000000000000388
[ 4224.709074] IP: [<ffffffff8147f699>] ipt_log_packet+0x29/0x270
when callling log functions from conntrack both in and out
are NULL i.e. the net pointer is invalid.
Adding struct net *net in call to nf_logfn() will secure that
there always is a vaild net ptr.
Reported as netfilter's bugzilla bug 818:
https://bugzilla.netfilter.org/show_bug.cgi?id=818
Reported-by: Ronald <ronald645@gmail.com>
Signed-off-by: Hans Schillstrom <hans@schillstrom.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/netfilter/nf_log.h | 3 | ||||
-rw-r--r-- | include/net/netfilter/nfnetlink_log.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/include/net/netfilter/nf_log.h b/include/net/netfilter/nf_log.h index 31f1fb9eb784..99eac12d040b 100644 --- a/include/net/netfilter/nf_log.h +++ b/include/net/netfilter/nf_log.h | |||
@@ -30,7 +30,8 @@ struct nf_loginfo { | |||
30 | } u; | 30 | } u; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | typedef void nf_logfn(u_int8_t pf, | 33 | typedef void nf_logfn(struct net *net, |
34 | u_int8_t pf, | ||
34 | unsigned int hooknum, | 35 | unsigned int hooknum, |
35 | const struct sk_buff *skb, | 36 | const struct sk_buff *skb, |
36 | const struct net_device *in, | 37 | const struct net_device *in, |
diff --git a/include/net/netfilter/nfnetlink_log.h b/include/net/netfilter/nfnetlink_log.h index e2dec42c2db2..5ca3f14f0998 100644 --- a/include/net/netfilter/nfnetlink_log.h +++ b/include/net/netfilter/nfnetlink_log.h | |||
@@ -2,7 +2,8 @@ | |||
2 | #define _KER_NFNETLINK_LOG_H | 2 | #define _KER_NFNETLINK_LOG_H |
3 | 3 | ||
4 | void | 4 | void |
5 | nfulnl_log_packet(u_int8_t pf, | 5 | nfulnl_log_packet(struct net *net, |
6 | u_int8_t pf, | ||
6 | unsigned int hooknum, | 7 | unsigned int hooknum, |
7 | const struct sk_buff *skb, | 8 | const struct sk_buff *skb, |
8 | const struct net_device *in, | 9 | const struct net_device *in, |