]> git.ipfire.org Git - thirdparty/glibc.git/commit
malloc: Fix attached thread reference count handling [BZ #19243]
authorFlorian Weimer <fweimer@redhat.com>
Wed, 16 Dec 2015 11:39:48 +0000 (12:39 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Wed, 16 Dec 2015 11:39:48 +0000 (12:39 +0100)
commit3da825ce483903e3a881a016113b3e59fd4041de
tree092a1973785289ec3bd6bb2eb9c40064608d33b6
parentf1aceee39289f97a420126c58007eba77fb2dd30
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.
ChangeLog
malloc/Makefile
malloc/arena.c
malloc/tst-malloc-thread-exit.c [new file with mode: 0644]