diff options
author | andre <andre@FreeBSD.org> | 2006-01-24 16:19:31 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2006-01-24 16:19:31 +0000 |
commit | 26e03a9ecb463e67d1623e2498935c372f1ee50a (patch) | |
tree | 0865d6ad72540dc4248b2a651f58ed4f713ce863 | |
parent | 48811f1bb08f1f8b47e7c5c010066e11333e6c15 (diff) | |
download | FreeBSD-src-26e03a9ecb463e67d1623e2498935c372f1ee50a.zip FreeBSD-src-26e03a9ecb463e67d1623e2498935c372f1ee50a.tar.gz |
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
-rw-r--r-- | sys/netinet/in.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 7c92dd3..7f23c10 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -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); |