Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/netinet6 drop packet to tentative/duplicated interface a...
details: https://anonhg.NetBSD.org/src/rev/4899caa24e7c
branches: trunk
changeset: 494122:4899caa24e7c
user: itojun <itojun%NetBSD.org@localhost>
date: Sun Jul 02 09:56:39 2000 +0000
description:
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 eff857ae233b -r 4899caa24e7c sys/netinet6/ip6_input.c
--- a/sys/netinet6/ip6_input.c Sun Jul 02 09:48:12 2000 +0000
+++ b/sys/netinet6/ip6_input.c Sun Jul 02 09:56:39 2000 +0000
@@ -1,5 +1,5 @@
-/* $NetBSD: ip6_input.c,v 1.23 2000/06/28 03:04:03 mrg Exp $ */
-/* $KAME: ip6_input.c,v 1.94 2000/06/13 10:06:19 jinmei Exp $ */
+/* $NetBSD: ip6_input.c,v 1.24 2000/07/02 09:56:39 itojun 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