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