diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index ef6fc16ae5d9315a9e2369b62e8ffae1312082bf..e048ec62d109f8f2024c113c4aa3c52d984d084c 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -1427,8 +1427,10 @@ void addrconf_dad_failure(struct inet6_ifaddr *ifp) { struct inet6_dev *idev = ifp->idev; - if (addrconf_dad_end(ifp)) + if (addrconf_dad_end(ifp)) { + in6_ifa_put(ifp); return; + } if (net_ratelimit()) printk(KERN_INFO "%s: IPv6 duplicate address %pI6c detected!\n",