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 Pull up rev. 1.24:



details:   https://anonhg.NetBSD.org/src/rev/3d8c245fadc2
branches:  netbsd-1-5
changeset: 488413:3d8c245fadc2
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Mon Jul 03 22:48:19 2000 +0000

description:
Pull up rev. 1.24:
drop packet to tentative/duplicated interface address earlier.  sync w/kame

diffstat:

 sys/netinet6/ip6_input.c |  19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diffs (40 lines):

diff -r 61a16fe0d225 -r 3d8c245fadc2 sys/netinet6/ip6_input.c
--- a/sys/netinet6/ip6_input.c  Mon Jul 03 22:46:16 2000 +0000
+++ b/sys/netinet6/ip6_input.c  Mon Jul 03 22:48:19 2000 +0000
@@ -1,5 +1,5 @@
-/*     $NetBSD: ip6_input.c,v 1.22 2000/06/13 14:43:44 itojun Exp $    */
-/*     $KAME: ip6_input.c,v 1.94 2000/06/13 10:06:19 jinmei Exp $      */
+/*     $NetBSD: ip6_input.c,v 1.22.2.1 2000/07/03 22:48:19 thorpej Exp $       */
+/*     $KAME: ip6_input.c,v 1.95 2000/07/02 07:49:37 jinmei Exp $      */
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -488,16 +488,25 @@
            ip6_forward_rt.ro_rt->rt_ifp->if_type == IFT_LOOP) {
                struct in6_ifaddr *ia6 =
                        (struct in6_ifaddr *)ip6_forward_rt.ro_rt->rt_ifa;
-               /* packet to tentative address must not be received */
                if (ia6->ia6_flags & IN6_IFF_ANYCAST)
                        m->m_flags |= M_ANYCAST6;
+               /*
+                * packets to a tentative, duplicated, or somehow invalid
+                * address must not be accepted.
+                */
                if (!(ia6->ia6_flags & IN6_IFF_NOTREADY)) {
-                       /* this interface is ready */
+                       /* this address is ready */
                        ours = 1;
                        deliverifp = ia6->ia_ifp;       /* correct? */
                        goto hbhcheck;
                } else {
-                       /* this interface is not ready, fall through */
+                       /* address is not ready, so discard the packet. */
+                       log(LOG_INFO,
+                           "ip6_input: packet to an unready address %s->%s",
+                           ip6_sprintf(&ip6->ip6_src),
+                           ip6_sprintf(&ip6->ip6_dst));
+
+                       goto bad;
                }
        }
 



Home | Main Index | Thread Index | Old Index