This file contains a patch for OpenBSD 3.9 errata #18.
THIS IS THE SECOND REVISION OF THIS PATCH.

For more information about this errata, please refer to
  http://www.OpenBSD.org/errata39.html#icmp6

Apply this patch by doing:
        cd /usr/src
        patch -p0 < 018_icmp6.patch

And then rebuild and install the kernel.

For more information about OpenBSD errata and how to apply them, please
refer to FAQ 10.15: http://www.OpenBSD.org/faq/faq10.html#Patches

For more information about compiling the OpenBSD kernel, please refer to
FAQ 5.3.4: http://www.OpenBSD.org/faq/faq5.html#Building

Index: sys/netinet6/icmp6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/icmp6.c,v
retrieving revision 1.85
retrieving revision 1.85.2.2
diff -u -r1.85 -r1.85.2.2
--- sys/netinet6/icmp6.c	22 Oct 2005 06:38:54 -0000	1.85
+++ sys/netinet6/icmp6.c	16 Jan 2007 19:32:38 -0000	1.85.2.2
@@ -619,7 +619,8 @@
 		} else {
 	 deliverecho:
 			nip6 = mtod(n, struct ip6_hdr *);
-			nicmp6 = (struct icmp6_hdr *)((caddr_t)nip6 + off);
+			IP6_EXTHDR_GET(nicmp6, struct icmp6_hdr *, n, off,
+			    sizeof(*nicmp6));
 			noff = off;
 		}
 		nicmp6->icmp6_type = ICMP6_ECHO_REPLY;
