]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: ignore Fast Open on repair mode
authorYuchung Cheng <ycheng@google.com>
Wed, 25 Apr 2018 18:33:08 +0000 (11:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Apr 2018 15:49:31 +0000 (11:49 -0400)
commit9941bcaf2da07bd77419048885ecce2dabe4e448
tree5ffa75389f1bcb7a45d39374bf20bf497e2169e1
parent362fe13de82aad3d47300b330005916efc2b0bf0
tcp: ignore Fast Open on repair mode

The TCP repair sequence of operation is to first set the socket in
repair mode, then inject the TCP stats into the socket with repair
socket options, then call connect() to re-activate the socket. The
connect syscall simply returns and set state to ESTABLISHED
mode. As a result Fast Open is meaningless for TCP repair.

However allowing sendto() system call with MSG_FASTOPEN flag half-way
during the repair operation could unexpectedly cause data to be
sent, before the operation finishes changing the internal TCP stats
(e.g. MSS).  This in turn triggers TCP warnings on inconsistent
packet accounting.

The fix is to simply disallow Fast Open operation once the socket
is in the repair mode.

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp.c