summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2007-12-28 02:15:08 +0000
committerjasone <jasone@FreeBSD.org>2007-12-28 02:15:08 +0000
commit93c7f7517b23fa331c2cf528a23708bee7444da1 (patch)
tree98b0fb1960ea086f2d716a4bff976077be49d11c
parent166f16a0c65fbc0905ba3a63268a239a2540a250 (diff)
downloadFreeBSD-src-93c7f7517b23fa331c2cf528a23708bee7444da1.zip
FreeBSD-src-93c7f7517b23fa331c2cf528a23708bee7444da1.tar.gz
Release chunks_mtx for all paths through chunk_dealloc().
Reported by: kris
-rw-r--r--lib/libc/stdlib/malloc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index 9852ba6..79ceb4b 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -1773,13 +1773,16 @@ chunk_dealloc(void *chunk, size_t size)
#ifdef MALLOC_DSS
if (opt_dss) {
if (chunk_dealloc_dss(chunk, size) == false)
- return;
+ goto RETURN;
}
if (opt_mmap)
#endif
chunk_dealloc_mmap(chunk, size);
+#ifdef MALLOC_DSS
+RETURN:
+#endif
#ifdef MALLOC_STATS
stats_chunks.curchunks -= (size / chunksize);
#endif
OpenPOWER on IntegriCloud