diff options
| author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2001-05-22 17:32:02 +0000 |
|---|---|---|
| committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2001-05-22 17:32:02 +0000 |
| commit | 8d67252492bc0539844ca5103ec7e81724023f44 (patch) | |
| tree | f438bb2a5e5436fa816d602a3bd8dcfe54a36daa /sys | |
| parent | 7b9ca2bd8c52a4bdbd34cf0491a3e40b9ff60efd (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/netinet6/ip6_input.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index 01056bbc2ab63..474534724bf9b 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -279,6 +279,8 @@ ip6_input(m) struct mbuf *n; MGETHDR(n, M_DONTWAIT, MT_HEADER); + if (n) + M_COPY_PKTHDR(n, m); if (n && m->m_pkthdr.len > MHLEN) { MCLGET(n, M_DONTWAIT); if ((n->m_flags & M_EXT) == 0) { @@ -286,14 +288,13 @@ ip6_input(m) n = NULL; } } - if (!n) + if (!n) { + m_freem(m); return; /*ENOBUFS*/ + } m_copydata(m, 0, m->m_pkthdr.len, mtod(n, caddr_t)); - n->m_pkthdr = m->m_pkthdr; n->m_len = m->m_pkthdr.len; - n->m_pkthdr.aux = m->m_pkthdr.aux; - m->m_pkthdr.aux = (struct mbuf *)NULL; m_freem(m); m = n; } |
