diff options
| author | Kuniyuki Iwashima <kuniyu@amazon.com> | 2022-07-18 10:26:52 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-07-29 17:28:13 +0200 |
| commit | 50723e2f24d31331fe49f177f774aaddb6bc7261 (patch) | |
| tree | 14c0bae08f936b9000223569f40dca38c886829a | |
| parent | d7d12eab3ba0edde63f7d95a03adbae8a22b5ff8 (diff) | |
| download | linux-50723e2f24d31331fe49f177f774aaddb6bc7261.tar.gz linux-50723e2f24d31331fe49f177f774aaddb6bc7261.tar.bz2 linux-50723e2f24d31331fe49f177f774aaddb6bc7261.zip | |
tcp: Fix a data-race around sysctl_tcp_abort_on_overflow.
[ Upstream commit 2d17d9c7382327d00aeaea35af44e9b26d53206e ]
While reading sysctl_tcp_abort_on_overflow, it can be changed concurrently.
Thus, we need to add READ_ONCE() to its reader.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
| -rw-r--r-- | net/ipv4/tcp_minisocks.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 700ea548d125..cb95d88497ae 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c @@ -781,7 +781,7 @@ listen_overflow: if (sk != req->rsk_listener) __NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPMIGRATEREQFAILURE); - if (!sock_net(sk)->ipv4.sysctl_tcp_abort_on_overflow) { + if (!READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_abort_on_overflow)) { inet_rsk(req)->acked = 1; return NULL; } |
