Re: [PATCH net v3] l2tp: Avoid possible recursive deadlock in l2tp_tunnel_register()

From: Guillaume Nault
Date: Fri Feb 17 2023 - 06:16:22 EST


On Fri, Feb 17, 2023 at 01:37:10AM +0900, Shigeru Yoshida wrote:
> @@ -840,8 +850,7 @@ static int pppol2tp_connect(struct socket *sock, struct sockaddr *uservaddr,
> }
> if (drop_refcnt)
> l2tp_session_dec_refcount(session);
> - if (drop_tunnel)
> - l2tp_tunnel_dec_refcount(tunnel);
> + l2tp_tunnel_dec_refcount(tunnel);
> release_sock(sk);
>
> return error;

The l2tp_tunnel_dec_refcount() call could be done after release_sock(),
to make the code more logical (as the refcount is now taken before
lock_sock()). Anyway, that shouldn't be a problem and I don't want to
delay this fix any longer.

Reviewed-by: Guillaume Nault <gnault@xxxxxxxxxx>