summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_mchain.c
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2003-02-19 10:12:42 +0000
committertjr <tjr@FreeBSD.org>2003-02-19 10:12:42 +0000
commit95727dd51398bedc5747291880655c9ad52616b3 (patch)
treeb78484d356e0e685895d4605a317756bca404233 /sys/kern/subr_mchain.c
parentdfa9741d3bc1093c4d054b05f18b9072db2ffdb8 (diff)
downloadFreeBSD-src-95727dd51398bedc5747291880655c9ad52616b3.zip
FreeBSD-src-95727dd51398bedc5747291880655c9ad52616b3.tar.gz
The "m = m->m_next" that was removed in the revision 1.12 was necessary
for the m->m_next != NULL case to avoid looping infinitely when the first mbuf in the chain becomes full.
Diffstat (limited to 'sys/kern/subr_mchain.c')
-rw-r--r--sys/kern/subr_mchain.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/subr_mchain.c b/sys/kern/subr_mchain.c
index ed231ba..c998a23 100644
--- a/sys/kern/subr_mchain.c
+++ b/sys/kern/subr_mchain.c
@@ -195,7 +195,8 @@ mb_put_mem(struct mbchain *mbp, c_caddr_t source, int size, int type)
m = m_getm(m, size, M_TRYWAIT, MT_DATA);
if (m == NULL)
return ENOBUFS;
- }
+ } else
+ m = m->m_next;
mleft = M_TRAILINGSPACE(m);
continue;
}
OpenPOWER on IntegriCloud