diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-04-14 01:31:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-14 01:31:32 -0400 |
commit | 68d185980f70413b353df99cdf5e667510036668 (patch) | |
tree | 3bbea21c14f6cd0f6feb28a66249bdeead9e3011 /net/dccp/ipv6.c | |
parent | fc5f8580d31d52890f17526ea739b124bd4e56f4 (diff) |
[NETNS][DCCPV6]: Don't pass NULL to ip6_dst_lookup.
This call uses the sock to get the net to lookup the routing
in. With CONFIG_NET_NS this code will OOPS, since the sk ptr
is NULL.
After looking inside the ip6_dst_lookup and drawing the analogy
with respective ipv6 code, it seems, that the dccp ctl socket
is a good candidate for the first argument.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ipv6.c')
-rw-r--r-- | net/dccp/ipv6.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 94d749e6d494..b657dea9ee27 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -322,7 +322,7 @@ static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb) | |||
322 | security_skb_classify_flow(rxskb, &fl); | 322 | security_skb_classify_flow(rxskb, &fl); |
323 | 323 | ||
324 | /* sk = NULL, but it is safe for now. RST socket required. */ | 324 | /* sk = NULL, but it is safe for now. RST socket required. */ |
325 | if (!ip6_dst_lookup(NULL, &skb->dst, &fl)) { | 325 | if (!ip6_dst_lookup(dccp_v6_ctl_sk, &skb->dst, &fl)) { |
326 | if (xfrm_lookup(&skb->dst, &fl, NULL, 0) >= 0) { | 326 | if (xfrm_lookup(&skb->dst, &fl, NULL, 0) >= 0) { |
327 | ip6_xmit(dccp_v6_ctl_sk, skb, &fl, NULL, 0); | 327 | ip6_xmit(dccp_v6_ctl_sk, skb, &fl, NULL, 0); |
328 | DCCP_INC_STATS_BH(DCCP_MIB_OUTSEGS); | 328 | DCCP_INC_STATS_BH(DCCP_MIB_OUTSEGS); |