From: Daniel Borkmann <dan...@iogearbox.net>
Date: Tue, 16 Oct 2018 21:31:35 +0200

> Eric reported that syzkaller triggered a splat in tcp_cleanup_ulp()
> where assertion sock_owned_by_me() failed. This happened through
> inet_csk_prepare_forced_close() first releasing the socket lock,
> then calling into tcp_done(newsk) which is called after the
> inet_csk_prepare_forced_close() and therefore without the socket
> lock held. The sock_owned_by_me() assertion can generally be
> removed as the only place where tcp_cleanup_ulp() is called from
> now is out of inet_csk_destroy_sock() -> sk->sk_prot->destroy()
> where socket is in dead state and unreachable. Therefore, add a
> comment why the check is not needed instead.
> 
> Fixes: 8b9088f806e1 ("tcp, ulp: enforce sock_owned_by_me upon ulp init and 
> cleanup")
> Reported-by: Eric Dumazet <eduma...@google.com>
> Signed-off-by: Daniel Borkmann <dan...@iogearbox.net>

Applied.

Reply via email to