diff options
author | jasone <jasone@FreeBSD.org> | 2007-12-28 02:15:08 +0000 |
---|---|---|
committer | jasone <jasone@FreeBSD.org> | 2007-12-28 02:15:08 +0000 |
commit | 93c7f7517b23fa331c2cf528a23708bee7444da1 (patch) | |
tree | 98b0fb1960ea086f2d716a4bff976077be49d11c /lib/libc | |
parent | 166f16a0c65fbc0905ba3a63268a239a2540a250 (diff) | |
download | FreeBSD-src-93c7f7517b23fa331c2cf528a23708bee7444da1.zip FreeBSD-src-93c7f7517b23fa331c2cf528a23708bee7444da1.tar.gz |
Release chunks_mtx for all paths through chunk_dealloc().
Reported by: kris
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/stdlib/malloc.c | 5 |
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 |