public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug dynamic-link/22745] _nptl_setxid can loop forever if a dlmopen namespace tries to initialise pthreads after the main namespace does
       [not found] <bug-22745-131@http.sourceware.org/bugzilla/>
@ 2022-04-06 10:25 ` fweimer at redhat dot com
  0 siblings, 0 replies; only message in thread
From: fweimer at redhat dot com @ 2022-04-06 10:25 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=22745

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at sourceware dot org   |fweimer at redhat dot com
             Status|UNCONFIRMED                 |RESOLVED
   Target Milestone|---                         |2.34
         Resolution|---                         |FIXED

--- Comment #15 from Florian Weimer <fweimer at redhat dot com> ---
I believe we fixed this in glibc 2.34 with this commit:

commit 90d7e7e5bd3b0683a27c658388b6515ce950c78e
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed Apr 21 19:49:51 2021 +0200

    elf: Introduce __tls_init_tp for second-phase TCB initialization

    TLS_INIT_TP is processor-specific, so it is not a good place to
    put thread library initialization code (it would have to be repeated
    for all CPUs).  Introduce __tls_init_tp as a separate function,
    to be called immediately after TLS_INIT_TP.  Move the existing
    stack list setup code for NPTL to this function.

    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

It depends on GL (dl_stack_user), which was introduced by:

commit 1daccf403b1bd86370eb94edca794dc106d02039
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Nov 16 19:33:30 2020 +0100

    nptl: Move stack list variables into _rtld_global

    Now __thread_gscope_wait (the function behind THREAD_GSCOPE_WAIT,
    formerly __wait_lookup_done) can be implemented directly in ld.so,
    eliminating the unprotected GL (dl_wait_lookup_done) function
    pointer.

    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

Plus some other changes that eventually eliminate late libpthread
initialization. With late initialization completely gone, dlmopen or static
dlmopen no longer clobbers the TCB.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-06 10:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-22745-131@http.sourceware.org/bugzilla/>
2022-04-06 10:25 ` [Bug dynamic-link/22745] _nptl_setxid can loop forever if a dlmopen namespace tries to initialise pthreads after the main namespace does fweimer at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).