Searched hist:"42 c556fef92361bbc58be22f91b1c49db0963c34" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/net/mptcp/ |
H A D | protocol.c | diff 42c556fef92361bbc58be22f91b1c49db0963c34 Wed Apr 29 13:43:20 CDT 2020 Florian Westphal <fw@strlen.de> mptcp: replace mptcp_disconnect with a stub
Paolo points out that mptcp_disconnect is bogus: "lock_sock(sk); looks suspicious (lock should be already held by the caller) And call to: tcp_disconnect(sk, flags); too, sk is not a tcp socket".
->disconnect() gets called from e.g. inet_stream_connect when one tries to disassociate a connected socket again (to re-connect without closing the socket first). MPTCP however uses mptcp_stream_connect, not inet_stream_connect, for the mptcp-socket connect call.
inet_stream_connect only gets called indirectly, for the tcp socket, so any ->disconnect() calls end up calling tcp_disconnect for that tcp subflow sk.
This also explains why syzkaller has not yet reported a problem here. So for now replace this with a stub that doesn't do anything.
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/14 Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
|