summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authoravos <avos@FreeBSD.org>2016-11-06 16:44:33 +0000
committeravos <avos@FreeBSD.org>2016-11-06 16:44:33 +0000
commitf0c141e119994f6191685d873902ad5d61612a02 (patch)
treea5a9ba333fcab0c1962ecb259904344c8c9dac6c /sys/kern
parent2ad9a680617aa2593c0c32be46b796333c0d7fbc (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/uipc_mbuf.c5
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;
OpenPOWER on IntegriCloud