From: Florian Westphal <f...@strlen.de> Date: Wed, 29 Apr 2020 20:43:20 +0200
> 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 <pab...@redhat.com> > Signed-off-by: Florian Westphal <f...@strlen.de> Applied.