diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2003-01-23 21:06:48 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2003-01-23 21:06:48 +0000 |
| commit | e1b7c4cdaa276a21e66dc41dc066ac341c49e76e (patch) | |
| tree | d2e1c972b1a11c9e5917d9b562c27261bbd16600 /sys/netinet6/esp_input.c | |
| parent | aacc1f035755257da66bd6d5888ac10d3c3b2965 (diff) | |
Notes
Diffstat (limited to 'sys/netinet6/esp_input.c')
| -rw-r--r-- | sys/netinet6/esp_input.c | 13 |
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; } |
