This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/19282] New: dl_load_write_lock isn't reinitialised during fork


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

            Bug ID: 19282
           Summary: dl_load_write_lock isn't reinitialised during fork
           Product: glibc
           Version: 2.22
            Status: NEW
          Severity: normal
          Priority: P2
         Component: dynamic-link
          Assignee: unassigned at sourceware dot org
          Reporter: stephen.robinson at intel dot com
  Target Milestone: ---

While investigating bug 4578 I ran into a deadlock due to dl_load_write_lock
not being reinitialised for the child process during a fork.

If one thread calls dl_iterate_phdr() and then another thread calls fork() then
the child process ends up with a dl_load_write_lock that is already locked by
the thread that called dl_iterate_phdr().

The fork call already reinitialises dl_load_lock but reinitialisation of
dl_load_write_lock was not added to fork when that new lock was created.

I have created and attached a test case that recreates this and a patch to fix
it.

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]