about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorMartin von Gagern <Martin.vGagern@gmx.net>2011-05-14 21:25:43 -0400
committerUlrich Drepper <drepper@gmail.com>2011-05-14 21:25:43 -0400
commitd26dfc60edc8c6dd160eefff16a734152a835ca0 (patch)
tree0d0e1a3caa1f5edd8fc27a8a4715fc1052740c7e /ChangeLog
parenta79a1c704b32c48903a4cb4c0786eca828520b5c (diff)
downloadglibc-d26dfc60edc8c6dd160eefff16a734152a835ca0.tar.gz
glibc-d26dfc60edc8c6dd160eefff16a734152a835ca0.tar.xz
glibc-d26dfc60edc8c6dd160eefff16a734152a835ca0.zip
Fix handling of static TLS in dlopen'ed objects
When dynamically loading a library along with several dependencies, calls to
_dl_add_to_slotinfo and _dl_update_slotinfo can become intermixed. As a
consequence, _dl_update_slotinfo will update the generation counter of the dtv
although not all of the slots belonging to that generation have been added.
Subsequent calls to _dl_add_to_slotinfo will add more slots to the same
generation, for which no storage will be allocated, as the dtv generation
checks will claim no work is necessary. This will lead to uninitialized dtv
entries and will likely cause a SIGSEGV when thread local variables are
accessed.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog10
1 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 26c431771a..a11ee6cc21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2011-05-14  Ulrich Drepper  <drepper@gmail.com>
 
+	[BZ #12453]
+	* elf/dl-open.c (dl_open_worker): Delay calls to _dl_update_slotinfo
+	until all modules are registered in the DTV.
+	* elf/Makefile: Add rules to build and run tst-tls19.
+	* elf/tst-tls19.c: New file.
+	* elf/tst-tls19mod1.c: New file.
+	* elf/tst-tls19mod2.c: New file.
+	* elf/tst-tls19mod3.c: New file.
+	Patch mostly by Martin von Gagern <Martin.vGagern@gmx.net>.
+
 	[BZ #12083]
 	* sysdeps/pthread/aio_misc.c (__aio_init): Compute optim.aio_num
 	correctly.