ipv6: fix icmp6_dst_alloc()
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 14 Mar 2012 21:13:11 +0000 (21:13 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Mar 2012 08:53:42 +0000 (01:53 -0700)
commit 87a115783 ( ipv6: Move xfrm_lookup() call down into
icmp6_dst_alloc().) forgot to convert one error path, leading
to crashes in mld_sendpack()

Many thanks to Dave Jones for providing a very complete bug report.

Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index 8c2e3ab..22b7664 100644 (file)
@@ -1077,7 +1077,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
        struct net *net = dev_net(dev);
 
        if (unlikely(!idev))
-               return NULL;
+               return ERR_PTR(-ENODEV);
 
        rt = ip6_dst_alloc(&net->ipv6.ip6_dst_ops, dev, 0);
        if (unlikely(!rt)) {