summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorHuang, Tao <huangtao@rock-chips.com>2016-07-05 18:24:14 +0800
committerHuang, Tao <huangtao@rock-chips.com>2016-07-05 18:24:14 +0800
commitfa06d81d7a40a3c9cdb4a8b259e0300140e08da7 (patch)
tree52910b2b3f0065402097acf6e3a4c27bea1804fe /net
parentb64abd1139c8fa098518eea83042b92e16da4f05 (diff)
Revert "netfilter: xt_qtaguid: fix crash on non-full sks"
This reverts commit 1b96a26c65104ee06eaa46dc23bbe22ebe3bf7d0. Fixes by LSK commit 202d12a1f733a252ee76f4cc497c9ce86270ebb2 ("xt_qtaguid: Fix panic caused by synack processing") and commit 4158b3431f473aad101da1100a9b241ff8b3cc74 ("xt_qtaguid: Fix panic caused by processing non-full socket.") Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/xt_qtaguid.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/netfilter/xt_qtaguid.c b/net/netfilter/xt_qtaguid.c
index 2596e1bf402f..e1442bfb668d 100644
--- a/net/netfilter/xt_qtaguid.c
+++ b/net/netfilter/xt_qtaguid.c
@@ -1606,7 +1606,7 @@ static struct sock *qtaguid_find_sk(const struct sk_buff *skb,
* When in TCP_TIME_WAIT the sk is not a "struct sock" but
* "struct inet_timewait_sock" which is missing fields.
*/
- if (!sk_fullsock(sk)) {
+ if (sk->sk_state == TCP_TIME_WAIT) {
sock_gen_put(sk);
sk = NULL;
}
@@ -1689,7 +1689,7 @@ static bool qtaguid_mt(const struct sk_buff *skb, struct xt_action_param *par)
/* default: Fall through and do UID releated work */
}
- sk = skb_to_full_sk(skb);
+ sk = skb->sk;
/*
* When in TCP_TIME_WAIT the sk is not a "struct sock" but
* "struct inet_timewait_sock" which is missing fields.