aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2015-10-04 21:08:07 -0700
committerDavid S. Miller <davem@davemloft.net>2015-10-05 02:45:24 -0700
commit7656d842de93fd2d2de7b403062cad757cadf1df (patch)
treeca3dd9409538fcb415d5e7166269a0e6e89b26b1 /include
parentMerge branch 'bridge-netlink' (diff)
downloadlinux-dev-7656d842de93fd2d2de7b403062cad757cadf1df.tar.xz
linux-dev-7656d842de93fd2d2de7b403062cad757cadf1df.zip
tcp: fix fastopen races vs lockless listener
There are multiple races that need fixes : 1) skb_get() + queue skb + kfree_skb() is racy An accept() can be done on another cpu, data consumed immediately. tcp_recvmsg() uses __kfree_skb() as it is assumed all skb found in socket receive queue are private. Then the kfree_skb() in tcp_rcv_state_process() uses an already freed skb 2) tcp_reqsk_record_syn() needs to be done before tcp_try_fastopen() for the same reasons. 3) We want to send the SYNACK before queueing child into accept queue, otherwise we might reintroduce the ooo issue fixed in commit 7c85af881044 ("tcp: avoid reorders for TFO passive connections") Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions