net: ip, raw_diag -- Fix socket leaking for destroy request
In raw_diag_destroy the helper raw_sock_get returns with sock_hold call, so we have to put it then. CC: David S. Miller <davem@davemloft.net> CC: Eric Dumazet <eric.dumazet@gmail.com> CC: David Ahern <dsa@cumulusnetworks.com> CC: Andrey Vagin <avagin@openvz.org> CC: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Acked-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
17197236d6
commit
cd05a0eca8
|
@ -205,11 +205,14 @@ static int raw_diag_destroy(struct sk_buff *in_skb,
|
|||
{
|
||||
struct net *net = sock_net(in_skb->sk);
|
||||
struct sock *sk;
|
||||
int err;
|
||||
|
||||
sk = raw_sock_get(net, r);
|
||||
if (IS_ERR(sk))
|
||||
return PTR_ERR(sk);
|
||||
return sock_diag_destroy(sk, ECONNABORTED);
|
||||
err = sock_diag_destroy(sk, ECONNABORTED);
|
||||
sock_put(sk);
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue