git: rtld-elf - restore old tls/tcb code
Alex Hornung
alexh at crater.dragonflybsd.org
Sun Jul 24 05:55:20 PDT 2011
commit 18d39a4f89a4c485af1b89815f4e63988532be5e
Author: Alex Hornung <ahornung at gmail.com>
Date: Sun Jul 24 14:45:50 2011 +0100
rtld-elf - restore old tls/tcb code
* This was ported incorrectly from FreBSD; the dtv in the TCB needs to
be updated properly.
* This fixes a fairly tricky issue that appears in threaded programs
using dlopen() and family, such as php and Java. It presented itself
as a strcmp segfault in object_match_name() due to a messed up STAILQ
->next pointer. The pointer was being messed up by the TLS code.
Reported-by: Peter Avalos, Antonio Huete, Francois Tigeot
Summary of changes:
libexec/rtld-elf/i386/reloc.c | 14 +++-----------
libexec/rtld-elf/rtld.c | 1 -
libexec/rtld-elf/x86_64/reloc.c | 9 ++-------
3 files changed, 5 insertions(+), 19 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/18d39a4f89a4c485af1b89815f4e63988532be5e
--
DragonFly BSD source repository
More information about the Commits
mailing list