tcp: Fix data-races around sysctl_tcp_fastopen.
[ Upstream commit 5a54213318c43f4009ae158347aa6016e3b9b55a ]
While reading sysctl_tcp_fastopen, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its readers.
Fixes: 2100c8d2d9
("net-tcp: Fast Open base")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
b3ce32e33a
commit
22938534c6
@@ -220,7 +220,7 @@ int inet_listen(struct socket *sock, int backlog)
|
||||
* because the socket was in TCP_LISTEN state previously but
|
||||
* was shutdown() rather than close().
|
||||
*/
|
||||
tcp_fastopen = sock_net(sk)->ipv4.sysctl_tcp_fastopen;
|
||||
tcp_fastopen = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_fastopen);
|
||||
if ((tcp_fastopen & TFO_SERVER_WO_SOCKOPT1) &&
|
||||
(tcp_fastopen & TFO_SERVER_ENABLE) &&
|
||||
!inet_csk(sk)->icsk_accept_queue.fastopenq.max_qlen) {
|
||||
|
Reference in New Issue
Block a user