Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/netinet6 Pullup 1.36 [itojun]:



details:   https://anonhg.NetBSD.org/src/rev/98358f3e65eb
branches:  netbsd-1-5
changeset: 490005:98358f3e65eb
user:      tv <tv%NetBSD.org@localhost>
date:      Mon Oct 30 22:36:33 2000 +0000

description:
Pullup 1.36 [itojun]:
do not panic on "ifconfig inet6 fe80::1 -alias".  from Todd Fries.
KAME PR 295.

diffstat:

 sys/netinet6/in6.c |  12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diffs (26 lines):

diff -r 43926b2b2974 -r 98358f3e65eb sys/netinet6/in6.c
--- a/sys/netinet6/in6.c        Mon Oct 30 22:28:38 2000 +0000
+++ b/sys/netinet6/in6.c        Mon Oct 30 22:36:33 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: in6.c,v 1.32.4.3 2000/10/06 07:00:37 itojun Exp $      */
+/*     $NetBSD: in6.c,v 1.32.4.4 2000/10/30 22:36:33 tv Exp $  */
 /*     $KAME: in6.c,v 1.107 2000/10/06 04:58:30 itojun Exp $   */
 
 /*
@@ -1169,7 +1169,15 @@
 {
        if ((ia->ia_flags & IFA_ROUTE) == 0)
                return;
-       if (ifp->if_flags & (IFF_LOOPBACK | IFF_POINTOPOINT))
+
+       /*
+        * We should check the existence of dstaddr, because link-local
+        * addresses can be configured without particular destinations
+        * even on point-to-point or loopback interfaces.
+        * In this case, kernel would panic in rtinit()...
+        */
+       if (ifp->if_flags & (IFF_LOOPBACK | IFF_POINTOPOINT) &&
+           (ia->ia_ifa.ifa_dstaddr != NULL))
                rtinit(&(ia->ia_ifa), (int)RTM_DELETE, RTF_HOST);
        else
                rtinit(&(ia->ia_ifa), (int)RTM_DELETE, 0);



Home | Main Index | Thread Index | Old Index