summaryrefslogtreecommitdiff
path: root/net/mptcp/protocol.c
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2020-04-20 17:25:05 +0300
committerDavid S. Miller <davem@davemloft.net>2020-04-20 22:59:32 +0300
commit4c8941de781cf71388d1490c6b85a02d1cec1ef4 (patch)
treee8ff0a201d2de1a6ac95477b601181fdfb2f9c96 /net/mptcp/protocol.c
parent5e20087d1b678965ae9df01eed03efedc1aef9f8 (diff)
downloadlinux-4c8941de781cf71388d1490c6b85a02d1cec1ef4.tar.xz
mptcp: avoid flipping mp_capable field in syn_recv_sock()
If multiple CPUs races on the same req_sock in syn_recv_sock(), flipping such field can cause inconsistent child socket status. When racing, the CPU losing the req ownership may still change the mptcp request socket mp_capable flag while the CPU owning the request is cloning the socket, leaving the child socket with 'is_mptcp' set but no 'mp_capable' flag. Such socket will stay with 'conn' field cleared, heading to oops in later mptcp callback. Address the issue tracking the fallback status in a local variable. Fixes: 58b09919626b ("mptcp: create msk early") Co-developed-by: Florian Westphal <fw@strlen.de> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mptcp/protocol.c')
0 files changed, 0 insertions, 0 deletions