xt_qtaguid: Fix panic caused by synack processing
In upstream commit ca6fb06518
(tcp: attach SYNACK messages to request sockets instead of
listener)
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ca6fb0651883
The building of synack messages was changed, which made it so
the skb->sk points to a casted request_sock. This is problematic,
as there is no sk_socket in a request_sock. So when the qtaguid_mt
function tries to access the sk->sk_socket, it accesses uninitialized
memory.
After looking at how other netfilter implementations handle this,
I realized there was a skb_to_full_sk() helper added, which the
xt_qtaguid code isn't yet using.
This patch adds its use, and resovles panics seen when accessing
uninitialzed memory when processing synack packets.
Reported-by: YongQin Liu <yongquin.liu@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
parent
52a20402ae
commit
202d12a1f7
1 changed files with 1 additions and 1 deletions
|
@ -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->sk;
|
||||
sk = skb_to_full_sk(skb);
|
||||
/*
|
||||
* When in TCP_TIME_WAIT the sk is not a "struct sock" but
|
||||
* "struct inet_timewait_sock" which is missing fields.
|
||||
|
|
Loading…
Add table
Reference in a new issue