Phonet: fix potential use-after-free in pep_sock_close()

sk_common_release() might destroy our last reference to the socket.
So an extra temporary reference is needed during cleanup.

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Rémi Denis-Courmont and committed by David S. Miller e513480e 7466a384

+2
+2
net/phonet/pep.c
··· 626 626 struct pep_sock *pn = pep_sk(sk); 627 627 int ifindex = 0; 628 628 629 + sock_hold(sk); /* keep a reference after sk_common_release() */ 629 630 sk_common_release(sk); 630 631 631 632 lock_sock(sk); ··· 645 644 646 645 if (ifindex) 647 646 gprs_detach(sk); 647 + sock_put(sk); 648 648 } 649 649 650 650 static int pep_wait_connreq(struct sock *sk, int noblock)