projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1719723
)
net: ip, raw_diag -- Fix socket leaking for destroy request
author
Cyrill Gorcunov
<
[email protected]
>
Wed, 2 Nov 2016 12:36:31 +0000
(15:36 +0300)
committer
David S. Miller
<
[email protected]
>
Thu, 3 Nov 2016 19:25:26 +0000
(15:25 -0400)
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 <
[email protected]
>
CC: Eric Dumazet <
[email protected]
>
CC: David Ahern <
[email protected]
>
CC: Andrey Vagin <
[email protected]
>
CC: Stephen Hemminger <
[email protected]
>
Signed-off-by: Cyrill Gorcunov <
[email protected]
>
Acked-by: David Ahern <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
net/ipv4/raw_diag.c
patch
|
blob
|
history
diff --git
a/net/ipv4/raw_diag.c
b/net/ipv4/raw_diag.c
index be930908bcf982cd99941fca7ccd880600cacf00..bf0b8842bf31fa4497414d881542d4fdbf59ddb1 100644
(file)
--- a/
net/ipv4/raw_diag.c
+++ b/
net/ipv4/raw_diag.c
@@
-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