X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fipv6%2Ficmp.c;h=121d517bf91c9d16467c5aa85df47efdd0b6c58e;hb=3d4d4582e5b3f67a68f2cf32fd5b70d8d80f119d;hp=5395afe55ca5a0e61b03f07eb10400625d9a0b0a;hpb=41a76906b3225997036efd88cbaae69d60b1e947;p=linux-2.6 diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 5395afe55c..121d517bf9 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c @@ -332,7 +332,7 @@ void icmpv6_send(struct sk_buff *skb, int type, int code, __u32 info, */ addr_type = ipv6_addr_type(&hdr->daddr); - if (ipv6_chk_addr(&hdr->daddr, skb->dev, 0)) + if (ipv6_chk_addr(&init_net, &hdr->daddr, skb->dev, 0)) saddr = &hdr->daddr; /* @@ -683,7 +683,8 @@ static int icmpv6_rcv(struct sk_buff *skb) } } - __skb_pull(skb, sizeof(*hdr)); + if (!pskb_pull(skb, sizeof(*hdr))) + goto discard_it; hdr = icmp6_hdr(skb);