ipv6: release idev when ip6_neigh_lookup failed in icmp6_dst_alloc
authorRongQing.Li <roy.qing.li@gmail.com>
Thu, 12 Jan 2012 22:33:46 +0000 (22:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Jan 2012 18:10:46 +0000 (10:10 -0800)
release idev when ip6_neigh_lookup failed in icmp6_dst_alloc

Signed-off-by: RongQing.Li <roy.qing.li@gmail.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index 07361dfa80852cbbe4db66027f8da5ef13ade4c1..8c2e3ab58f2af211c04f17c337929bd2802cbe27 100644 (file)
@@ -1091,6 +1091,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
        else {
                neigh = ip6_neigh_lookup(&rt->dst, &fl6->daddr);
                if (IS_ERR(neigh)) {
+                       in6_dev_put(idev);
                        dst_free(&rt->dst);
                        return ERR_CAST(neigh);
                }