diff options
author | ume <ume@FreeBSD.org> | 2001-01-22 13:02:10 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2001-01-22 13:02:10 +0000 |
commit | c678f46a196f8054c315bc14fde182472bde89de (patch) | |
tree | c9768c95a2a97a78e0e04d9061facc206346b641 /sys/netinet6 | |
parent | f1e70294d8c5432d20901d39af9e92a6405ddabe (diff) | |
download | FreeBSD-src-c678f46a196f8054c315bc14fde182472bde89de.zip FreeBSD-src-c678f46a196f8054c315bc14fde182472bde89de.tar.gz |
on in6_ifdetach(), do not remove default route mistakenly
Obtained from: KAME
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6_ifattach.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 97a09e4..c839d01 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -1007,8 +1007,8 @@ in6_ifdetach(ifp) sin6.sin6_family = AF_INET6; sin6.sin6_addr = in6addr_linklocal_allnodes; sin6.sin6_addr.s6_addr16[1] = htons(ifp->if_index); - if ((rt = rtalloc1((struct sockaddr *)&sin6, 0, 0UL)) != NULL) - { + rt = rtalloc1((struct sockaddr *)&sin6, 0, 0UL); + if (rt && rt->rt_ifp == ifp) { rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt), rt->rt_gateway, rt_mask(rt), rt->rt_flags, 0); rtfree(rt); |