summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbmilekic <bmilekic@FreeBSD.org>2004-06-11 18:17:25 +0000
committerbmilekic <bmilekic@FreeBSD.org>2004-06-11 18:17:25 +0000
commitb75fa8ff5c6ffd5f71c21a674749e607ea6c7f8e (patch)
treed31a18e0058e11ef7a46302151ee15c2e4a2177c
parent89df59b845a65c061802e82eb8f72d028de0839f (diff)
downloadFreeBSD-src-b75fa8ff5c6ffd5f71c21a674749e607ea6c7f8e.zip
FreeBSD-src-b75fa8ff5c6ffd5f71c21a674749e607ea6c7f8e.tar.gz
Gah! Plug a mbuf leak I introduced in the last commit.
I don the pointy-hat. Problem reported by: Peter Holm <pho@>
-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