|
@@ -205,11 +205,14 @@ static int raw_diag_destroy(struct sk_buff *in_skb,
|
|
{
|
|
{
|
|
struct net *net = sock_net(in_skb->sk);
|
|
struct net *net = sock_net(in_skb->sk);
|
|
struct sock *sk;
|
|
struct sock *sk;
|
|
|
|
+ int err;
|
|
|
|
|
|
sk = raw_sock_get(net, r);
|
|
sk = raw_sock_get(net, r);
|
|
if (IS_ERR(sk))
|
|
if (IS_ERR(sk))
|
|
return PTR_ERR(sk);
|
|
return PTR_ERR(sk);
|
|
- return sock_diag_destroy(sk, ECONNABORTED);
|
|
|
|
|
|
+ err = sock_diag_destroy(sk, ECONNABORTED);
|
|
|
|
+ sock_put(sk);
|
|
|
|
+ return err;
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|