diff options
author | avos <avos@FreeBSD.org> | 2016-11-06 16:44:33 +0000 |
---|---|---|
committer | avos <avos@FreeBSD.org> | 2016-11-06 16:44:33 +0000 |
commit | f0c141e119994f6191685d873902ad5d61612a02 (patch) | |
tree | a5a9ba333fcab0c1962ecb259904344c8c9dac6c | |
parent | 2ad9a680617aa2593c0c32be46b796333c0d7fbc (diff) | |
download | FreeBSD-src-f0c141e119994f6191685d873902ad5d61612a02.zip FreeBSD-src-f0c141e119994f6191685d873902ad5d61612a02.tar.gz |
MFC r288990:
Fix regression from r248371. We need to copy packet header to new
mbuf. Unlike in the pre-r248371 code, assert that M_PKTHDR is set
only on a first mbuf.
PR: 195074
-rw-r--r-- | sys/kern/uipc_mbuf.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index df03928..e1417744 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -1994,6 +1994,11 @@ m_unshare(struct mbuf *m0, int how) m_freem(m0); return (NULL); } + if (m->m_flags & M_PKTHDR) { + KASSERT(mprev == NULL, ("%s: m0 %p, m %p has M_PKTHDR", + __func__, m0, m)); + m_move_pkthdr(n, m); + } len = m->m_len; off = 0; mfirst = n; |