Author: glebius
Date: Wed Oct  7 12:40:00 2015
New Revision: 288990
URL: https://svnweb.freebsd.org/changeset/base/288990

Log:
  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.
  
  Reported & tested by: Andriy Voskoboinyk <s3erios gmail.com>
  Sponsored by:         Nginx, Inc.

Modified:
  head/sys/kern/uipc_mbuf.c

Modified: head/sys/kern/uipc_mbuf.c
==============================================================================
--- head/sys/kern/uipc_mbuf.c   Wed Oct  7 12:36:28 2015        (r288989)
+++ head/sys/kern/uipc_mbuf.c   Wed Oct  7 12:40:00 2015        (r288990)
@@ -1867,6 +1867,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;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to