aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet6/in6_ifattach.c
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2001-01-22 13:02:10 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2001-01-22 13:02:10 +0000
commite699b0ae537fe57a4149582e0066a8a9061ff8f2 (patch)
treecbebae05ad915e6af7941cb3f9e9a2f3c4ba7cd3 /sys/netinet6/in6_ifattach.c
parent9abfa9d14b08519903885df5466c881e5aec0fd4 (diff)
downloadsrc-e699b0ae537fe57a4149582e0066a8a9061ff8f2.tar.gz
src-e699b0ae537fe57a4149582e0066a8a9061ff8f2.zip
on in6_ifdetach(), do not remove default route mistakenly
Obtained from: KAME
Notes
Notes: svn path=/head/; revision=71375
Diffstat (limited to 'sys/netinet6/in6_ifattach.c')
-rw-r--r--sys/netinet6/in6_ifattach.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c
index 97a09e4f972d..c839d014a00d 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);