From a990c205183fd7074704c989222ae2f79d55b763 Mon Sep 17 00:00:00 2001 From: Jeffrey Hsu Date: Mon, 3 Jan 2005 22:03:26 +0000 Subject: [PATCH] Correct a byte-order bug with fragment header scanning. Obtained from KAME rev 1.331 by suz. Same as FreeBSD rev 1.54 by ume. Submitted by Hiroki Sato --- sys/netinet6/ip6_input.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index f88ce32da2..035f50a2c3 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/ip6_input.c,v 1.11.2.15 2003/01/24 05:11:35 sam Exp $ */ -/* $DragonFly: src/sys/netinet6/ip6_input.c,v 1.22 2004/12/21 02:54:47 hsu Exp $ */ +/* $DragonFly: src/sys/netinet6/ip6_input.c,v 1.23 2005/01/03 22:03:26 hsu Exp $ */ /* $KAME: ip6_input.c,v 1.259 2002/01/21 04:58:09 jinmei Exp $ */ /* @@ -1499,7 +1499,8 @@ ip6_nexthdr(struct mbuf *m, int off, int proto, int *nxtp) if (m->m_pkthdr.len < off + sizeof(fh)) return -1; m_copydata(m, off, sizeof(fh), (caddr_t)&fh); - if ((ntohs(fh.ip6f_offlg) & IP6F_OFF_MASK) != 0) + /* IP6F_OFF_MASK = 0xfff8(BigEndian), 0xf8ff(LittleEndian) */ + if (fh.ip6f_offlg & IP6F_OFF_MASK) return -1; if (nxtp) *nxtp = fh.ip6f_nxt; -- 2.41.0