⬢ DragonFlyBSD Kernel Audit
DF-2690 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -1478,6 +1478,9 @@
 m_extadd(struct mbuf *m, void *buf, u_int size, void (*reff)(void *),
 	 void (*freef)(void *), void *arg)
 {
+	/* m_extadd() is only valid on an mbuf with no prior external buffer */
+	KKASSERT((m->m_flags & M_EXT) == 0);
+
 	m->m_ext.ext_arg = arg;
 	m->m_ext.ext_buf = buf;
 	m->m_ext.ext_ref = reff;