git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
l2tp: hold socket before dropping lock in l2tp_ip{, 6}_recv()
[pandora-kernel.git]
/
net
/
l2tp
/
l2tp_ip.c
diff --git
a/net/l2tp/l2tp_ip.c
b/net/l2tp/l2tp_ip.c
index
6f12fd6
..
8173ee3
100644
(file)
--- a/
net/l2tp/l2tp_ip.c
+++ b/
net/l2tp/l2tp_ip.c
@@
-197,14
+197,15
@@
pass_up:
read_lock_bh(&l2tp_ip_lock);
sk = __l2tp_ip_bind_lookup(&init_net, iph->daddr, 0, tunnel_id);
read_lock_bh(&l2tp_ip_lock);
sk = __l2tp_ip_bind_lookup(&init_net, iph->daddr, 0, tunnel_id);
+ if (!sk) {
+ read_unlock_bh(&l2tp_ip_lock);
+ goto discard;
+ }
+
+ sock_hold(sk);
read_unlock_bh(&l2tp_ip_lock);
}
read_unlock_bh(&l2tp_ip_lock);
}
- if (sk == NULL)
- goto discard;
-
- sock_hold(sk);
-
if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb))
goto discard_put;
if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb))
goto discard_put;