From 16e940bc5e5a35c230b0c4acb62bcb4a66f0673d Mon Sep 17 00:00:00 2001 From: Steve Muckle Date: Wed, 6 Feb 2013 11:49:04 -0800 Subject: [PATCH] netfilter: xt_qtaguid: do not look at TCP_TIME_WAIT socket It is possible that skb->sk may be a TCP_TIME_WAIT socket, in which case many of the fields will not be valid. Thanks to Eric Dumazet for pointing out this issue and the fix. http://article.gmane.org/gmane.linux.ports.arm.msm/3400 Change-Id: I1fa955df16f8919ec243d55e6131efb335a7871c Signed-off-by: Steve Muckle --- net/netfilter/xt_qtaguid.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/netfilter/xt_qtaguid.c b/net/netfilter/xt_qtaguid.c index 86ca0212bf2..2b486b1fcc7 100644 --- a/net/netfilter/xt_qtaguid.c +++ b/net/netfilter/xt_qtaguid.c @@ -1773,6 +1773,8 @@ static bool qtaguid_mt(const struct sk_buff *skb, struct xt_action_param *par) } sk = skb->sk; + if (sk && sk->sk_state == TCP_TIME_WAIT) + sk = NULL; if (sk == NULL) { /* * A missing sk->sk_socket happens when packets are in-flight