summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/netinet6/route6.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/netinet6/route6.c b/sys/netinet6/route6.c
index 7e4e0e2588b..b0e8c8f3079 100644
--- a/sys/netinet6/route6.c
+++ b/sys/netinet6/route6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: route6.c,v 1.15 2007/04/21 16:47:42 itojun Exp $ */
+/* $OpenBSD: route6.c,v 1.16 2007/05/31 23:17:38 mcbride Exp $ */
/* $KAME: route6.c,v 1.22 2000/12/03 00:54:00 itojun Exp $ */
/*
@@ -67,6 +67,21 @@ route6_input(mp, offp, proto)
switch (rh->ip6r_type) {
#if 0
+ /*
+ * See http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf
+ * for why IPV6_RTHDR_TYPE_0 is banned here.
+ *
+ * We return ICMPv6 parameter problem so that innocent people
+ * (not an attacker) would notice about the use of IPV6_RTHDR_TYPE_0.
+ * Since there's no amplification, and ICMPv6 error will be rate-
+ * controlled, it shouldn't cause any problem.
+ * If you are concerned about this, you may want to use the following
+ * code fragment:
+ *
+ * case IPV6_RTHDR_TYPE_0:
+ * m_freem(m);
+ * return (IPPROTO_DONE);
+ */
case IPV6_RTHDR_TYPE_0:
rhlen = (rh->ip6r_len + 1) << 3;
if (rh->ip6r_segleft == 0)