diff options
author | ume <ume@FreeBSD.org> | 2003-10-10 19:49:52 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2003-10-10 19:49:52 +0000 |
commit | d8181d09cf44e72451c0a8876cece3d1857c5465 (patch) | |
tree | c82dc72b8209c8d6d4f1c80e1d9b2249915625ed | |
parent | 8685e5b2974ec3f7b3caaf9f6418a79c404d0fd7 (diff) | |
download | FreeBSD-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.c | 3 |
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; |