summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2003-10-10 19:49:52 +0000
committerume <ume@FreeBSD.org>2003-10-10 19:49:52 +0000
commitd8181d09cf44e72451c0a8876cece3d1857c5465 (patch)
treec82dc72b8209c8d6d4f1c80e1d9b2249915625ed
parent8685e5b2974ec3f7b3caaf9f6418a79c404d0fd7 (diff)
downloadFreeBSD-src-d8181d09cf44e72451c0a8876cece3d1857c5465.zip
FreeBSD-src-d8181d09cf44e72451c0a8876cece3d1857c5465.tar.gz
fixed an endian bug on fragment header scanning
Obtained from: KAME
-rw-r--r--sys/netinet6/ip6_input.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c
index 2d7420f..cc6f842 100644
--- a/sys/netinet6/ip6_input.c
+++ b/sys/netinet6/ip6_input.c
@@ -1479,7 +1479,8 @@ ip6_nexthdr(m, off, proto, 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;
OpenPOWER on IntegriCloud