summaryrefslogtreecommitdiff
path: root/sys/netinet6/esp_input.c
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2003-01-23 21:06:48 +0000
committerSam Leffler <sam@FreeBSD.org>2003-01-23 21:06:48 +0000
commite1b7c4cdaa276a21e66dc41dc066ac341c49e76e (patch)
treed2e1c972b1a11c9e5917d9b562c27261bbd16600 /sys/netinet6/esp_input.c
parentaacc1f035755257da66bd6d5888ac10d3c3b2965 (diff)
Notes
Diffstat (limited to 'sys/netinet6/esp_input.c')
-rw-r--r--sys/netinet6/esp_input.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/sys/netinet6/esp_input.c b/sys/netinet6/esp_input.c
index f49ff25dc260..f6d01aa3296f 100644
--- a/sys/netinet6/esp_input.c
+++ b/sys/netinet6/esp_input.c
@@ -830,8 +830,8 @@ noreplaycheck:
MGETHDR(n, M_DONTWAIT, MT_HEADER);
maxlen = MHLEN;
if (n)
- M_COPY_PKTHDR(n, m);
- if (n && m->m_pkthdr.len > maxlen) {
+ M_MOVE_PKTHDR(n, m);
+ if (n && n->m_pkthdr.len > maxlen) {
MCLGET(n, M_DONTWAIT);
maxlen = MCLBYTES;
if ((n->m_flags & M_EXT) == 0) {
@@ -844,19 +844,16 @@ noreplaycheck:
goto bad;
}
- if (m->m_pkthdr.len <= maxlen) {
- m_copydata(m, 0, m->m_pkthdr.len, mtod(n, caddr_t));
- n->m_len = m->m_pkthdr.len;
- n->m_pkthdr.len = m->m_pkthdr.len;
+ if (n->m_pkthdr.len <= maxlen) {
+ m_copydata(m, 0, n->m_pkthdr.len, mtod(n, caddr_t));
+ n->m_len = n->m_pkthdr.len;
n->m_next = NULL;
m_freem(m);
} else {
m_copydata(m, 0, maxlen, mtod(n, caddr_t));
n->m_len = maxlen;
- n->m_pkthdr.len = m->m_pkthdr.len;
n->m_next = m;
m_adj(m, maxlen);
- m->m_flags &= ~M_PKTHDR;
}
m = n;
}