summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-05-26 05:46:34 +0000
committerAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-05-26 05:46:34 +0000
commit591209718a1fafe114c9ed9b23a5167ecc0bc980 (patch)
tree8057716236f7d7d6b50b643e381613a1836ef3af /sys
parent75ee0ea1c993820dd70956c631251d3a8dc9fcb6 (diff)
Fix backpointer.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/uipc_mbuf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index 7dac42cd002..28acb21f409 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uipc_mbuf.c,v 1.32 2001/05/24 10:59:23 angelos Exp $ */
+/* $OpenBSD: uipc_mbuf.c,v 1.33 2001/05/26 05:46:33 angelos Exp $ */
/* $NetBSD: uipc_mbuf.c,v 1.15.4.1 1996/06/13 17:11:44 cgd Exp $ */
/*
@@ -643,9 +643,9 @@ m_pullup2(n, len)
register struct mbuf *m;
register int count;
int space;
+
if (len <= MHLEN)
return m_pullup(n, len);
-
if ((n->m_flags & M_EXT) != 0 &&
n->m_data + len < &n->m_data[MCLBYTES] && n->m_next) {
if (n->m_len >= len)
@@ -668,6 +668,8 @@ m_pullup2(n, len)
m->m_pkthdr = n->m_pkthdr;
if (TAILQ_EMPTY(&n->m_pkthdr.tags))
TAILQ_INIT(&m->m_pkthdr.tags);
+ else
+ TAILQ_FIRST(&m->m_pkthdr.tags)->m_tag_link.tqe_prev = &m->m_pkthdr.tags.tqh_first;
m->m_flags = (n->m_flags & M_COPYFLAGS) | M_EXT;
n->m_flags &= ~M_PKTHDR;
TAILQ_INIT(&n->m_pkthdr.tags);