summaryrefslogtreecommitdiffstats
path: root/sys/netinet/in.c
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2006-01-24 16:19:31 +0000
committerandre <andre@FreeBSD.org>2006-01-24 16:19:31 +0000
commit26e03a9ecb463e67d1623e2498935c372f1ee50a (patch)
tree0865d6ad72540dc4248b2a651f58ed4f713ce863 /sys/netinet/in.c
parent48811f1bb08f1f8b47e7c5c010066e11333e6c15 (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/netinet/in.c')
-rw-r--r--sys/netinet/in.c3
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);
OpenPOWER on IntegriCloud