--- b724d7faa3c8bad73241c5c6d76f6509f5bd289b +++ 92359019991af5aa91497a322852dc16653d635a @@ -756,6 +756,7 @@ static int pppol2tp_recv_core(struct soc /* Try to dequeue as many skbs from reorder_q as we can. */ pppol2tp_recv_dequeue(session); + sock_put(sock); return 0; @@ -772,6 +773,7 @@ discard_bad_csum: UDP_INC_STATS_USER(&init_net, UDP_MIB_INERRORS, 0); tunnel->stats.rx_errors++; kfree_skb(skb); + sock_put(sock); return 0; @@ -1658,6 +1660,7 @@ static int pppol2tp_connect(struct socke if (tunnel_sock == NULL) goto end; + sock_hold(tunnel_sock); tunnel = tunnel_sock->sk_user_data; } else { tunnel = pppol2tp_tunnel_find(sock_net(sk), sp->pppol2tp.s_tunnel);