summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/uipc_mbuf.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index 2c8af1f..339e05d 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -237,7 +237,7 @@ mb_free_ext(struct mbuf *m)
*/
if (m->m_ext.ext_type == EXT_PACKET) {
uma_zfree(zone_pack, m);
- break;
+ return;
} else if (m->m_ext.ext_type == EXT_CLUSTER) {
uma_zfree(zone_clust, m->m_ext.ext_buf);
m->m_ext.ext_buf = NULL;
@@ -246,13 +246,14 @@ mb_free_ext(struct mbuf *m)
m->m_ext.ext_args);
if (m->m_ext.ext_type != EXT_EXTREF)
free(m->m_ext.ref_cnt, M_MBUF);
+ m->m_ext.ext_buf = NULL;
}
- uma_zfree(zone_mbuf, m);
}
/* Decrement (and potentially free) done, safely. */
break;
}
} while (1);
+ uma_zfree(zone_mbuf, m);
}
/*
OpenPOWER on IntegriCloud