In in_control() remove the temporary in_ifaddr structure from the

ia_hash only if it actually is an AF_INET address.  All other places
test for sa_family == AF_INET but this one.

PR:		kern/92091
Submitted by:	Seth Kingsley <sethk-at-meowfishies.com>
MFC after:	3 days
This commit is contained in:
Andre Oppermann 2006-01-24 16:19:31 +00:00
parent 093a8c9e1b
commit 31343a3da2

View File

@ -479,7 +479,8 @@ in_control(so, cmd, data, ifp, td)
s = splnet();
TAILQ_REMOVE(&ifp->if_addrhead, &ia->ia_ifa, ifa_link);
TAILQ_REMOVE(&in_ifaddrhead, ia, ia_link);
LIST_REMOVE(ia, ia_hash);
if (ia->ia_addr.sin_family == AF_INET)
LIST_REMOVE(ia, ia_hash);
IFAFREE(&ia->ia_ifa);
splx(s);