This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/23790] New: Data race in _dl_profile_fixup with reloc_result update from multiple threads.
- From: "carlos at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Thu, 18 Oct 2018 01:51:20 +0000
- Subject: [Bug dynamic-link/23790] New: Data race in _dl_profile_fixup with reloc_result update from multiple threads.
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=23790
Bug ID: 23790
Summary: Data race in _dl_profile_fixup with reloc_result
update from multiple threads.
Product: glibc
Version: 2.30
Status: NEW
Severity: normal
Priority: P2
Component: dynamic-link
Assignee: unassigned at sourceware dot org
Reporter: carlos at redhat dot com
Target Milestone: ---
There is a data race in _dl_profile_fixup where multiple threads may enter from
the same PLT entry, and update the same reloc_result index entry.
This is similar to the data dependency issues from bug 23690, but there we only
look to solve the issue for threads that find the guard variable indicating the
structure is initialized only to see incomplete writes to the structure and
crash.
The fix is for _dl_profile_fixup to be rewritten such that the threads work on
a local copy of a struct reloc_result and then use a RMW sequence to place it
into the final array, and thus we avoid the data races.
--
You are receiving this mail because:
You are on the CC list for the bug.