[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20181016.123913.1544452258486816911.davem@davemloft.net>
Date: Tue, 16 Oct 2018 12:39:13 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: daniel@...earbox.net
Cc: eric.dumazet@...il.com, john.fastabend@...il.com,
alexei.starovoitov@...il.com, davejwatson@...com,
netdev@...r.kernel.org
Subject: Re: [PATCH net-next] tcp, ulp: remove socket lock assertion on ULP
cleanup
From: Daniel Borkmann <daniel@...earbox.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 <edumazet@...gle.com>
> Signed-off-by: Daniel Borkmann <daniel@...earbox.net>
Applied.
Powered by blists - more mailing lists