svn commit: r225582 - head/libexec/rtld-elf

Sergey Kandaurov pluknet at freebsd.org
Thu Sep 15 12:06:30 UTC 2011


On 15 September 2011 15:50, Konstantin Belousov <kib at freebsd.org> wrote:
> Author: kib
> Date: Thu Sep 15 11:50:09 2011
> New Revision: 225582
> URL: http://svn.freebsd.org/changeset/base/225582
>
> Log:
>  Use the proper dynamic tls block to calculate the tls variable address
>  in case tls data generation was updated.
>
>  PR:   misc/160721
>  Submitted by: "Thinker K.F. Li" <thinker codemud net>
>  Tested by:    flo
>  Approved by:  re (bz)
>  MFC after:    1 week
>
> Modified:
>  head/libexec/rtld-elf/rtld.c
>
> Modified: head/libexec/rtld-elf/rtld.c
> ==============================================================================
> --- head/libexec/rtld-elf/rtld.c        Thu Sep 15 11:17:07 2011        (r225581)
> +++ head/libexec/rtld-elf/rtld.c        Thu Sep 15 11:50:09 2011        (r225582)
> @@ -3370,7 +3370,7 @@ tls_get_addr_common(Elf_Addr** dtvp, int
>        newdtv[1] = tls_max_index;
>        free(dtv);
>        lock_release(rtld_bind_lock, &lockstate);
> -       *dtvp = newdtv;
> +       dtv = *dtvp = newdtv;
>     }
>
>     /* Dynamically allocate module TLS if necessary */
>

Thanks,

this patch fixes immediate /usr/bin/top SIGSEGV used with nss-pam-ldap auth
when built with -O2. Tested and patched on 8.1-R.

-- 
wbr,
pluknet


More information about the svn-src-all mailing list