aboutsummaryrefslogtreecommitdiff
path: root/malloc/Makefile
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2015-12-16 12:39:48 +0100
committerFlorian Weimer <fweimer@redhat.com>2015-12-16 12:39:48 +0100
commit3da825ce483903e3a881a016113b3e59fd4041de (patch)
tree092a1973785289ec3bd6bb2eb9c40064608d33b6 /malloc/Makefile
parentf1aceee39289f97a420126c58007eba77fb2dd30 (diff)
downloadglibc-3da825ce483903e3a881a016113b3e59fd4041de.tar
glibc-3da825ce483903e3a881a016113b3e59fd4041de.tar.gz
glibc-3da825ce483903e3a881a016113b3e59fd4041de.tar.bz2
glibc-3da825ce483903e3a881a016113b3e59fd4041de.zip
malloc: Fix attached thread reference count handling [BZ #19243]
reused_arena can increase the attached thread count of arenas on the free list. This means that the assertion that the reference count is zero is incorrect. In this case, the reference count initialization is incorrect as well and could cause arenas to be put on the free list too early (while they still have attached threads). * malloc/arena.c (get_free_list): Remove assert and adjust reference count handling. Add comment about reused_arena interaction. (reused_arena): Add comments abount get_free_list interaction. * malloc/tst-malloc-thread-exit.c: New file. * malloc/Makefile (tests): Add tst-malloc-thread-exit. (tst-malloc-thread-exit): Link against libpthread.
Diffstat (limited to 'malloc/Makefile')
-rw-r--r--malloc/Makefile4
1 files changed, 3 insertions, 1 deletions
diff --git a/malloc/Makefile b/malloc/Makefile
index 67ed293148..aa0579cb98 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -28,7 +28,7 @@ tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \
tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 \
tst-malloc-usable tst-realloc tst-posix_memalign \
tst-pvalloc tst-memalign tst-mallopt tst-scratch_buffer \
- tst-malloc-backtrace
+ tst-malloc-backtrace tst-malloc-thread-exit
test-srcs = tst-mtrace
routines = malloc morecore mcheck mtrace obstack \
@@ -47,6 +47,8 @@ libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes))
$(objpfx)tst-malloc-backtrace: $(common-objpfx)nptl/libpthread.so \
$(common-objpfx)nptl/libpthread_nonshared.a
+$(objpfx)tst-malloc-thread-exit: $(common-objpfx)nptl/libpthread.so \
+ $(common-objpfx)nptl/libpthread_nonshared.a
# These should be removed by `make clean'.
extra-objs = mcheck-init.o libmcheck.a