summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/in6.c
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2012-01-24 13:57:30 +0000
committerbz <bz@FreeBSD.org>2012-01-24 13:57:30 +0000
commite59c01b14f52764214c109603e8dd533dacef5da (patch)
treeb038d7754985dc492e6e085ef1f8e6f8d9e56582 /sys/netinet6/in6.c
parent4c40db42c1a5b54d686ee3a9f6d3835a5aec23b8 (diff)
downloadFreeBSD-src-e59c01b14f52764214c109603e8dd533dacef5da.zip
FreeBSD-src-e59c01b14f52764214c109603e8dd533dacef5da.tar.gz
Plug a possible ifa_ref leak in case of premature return from in6_purgeaddr().
Reviewed by: rwatson MFC after: 3 days
Diffstat (limited to 'sys/netinet6/in6.c')
-rw-r--r--sys/netinet6/in6.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index bde3db5..cf5eb35 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -1477,6 +1477,8 @@ in6_purgeaddr(struct ifaddr *ifa)
}
cleanup:
+ if (ifa0 != NULL)
+ ifa_free(ifa0);
plen = in6_mask2len(&ia->ia_prefixmask.sin6_addr, NULL); /* XXX */
if ((ia->ia_flags & IFA_ROUTE) && plen == 128) {
@@ -1501,8 +1503,6 @@ cleanup:
return;
ia->ia_flags &= ~IFA_ROUTE;
}
- if (ifa0 != NULL)
- ifa_free(ifa0);
in6_unlink_ifa(ia, ifp);
}
OpenPOWER on IntegriCloud