[gold commit] PR gold/14860: Fix race condition.
Ian Lance Taylor
iant@google.com
Thu Nov 14 20:42:00 GMT 2013
On Thu, Nov 14, 2013 at 10:45 AM, Cary Coutant <ccoutant@google.com> wrote:
> This patch fixes a race condition in Eh_frame_hdr::record_fde. When
> running multi-threaded, many Write_sections tasks may call record_fde_,
> which pushes an entry onto a shared vector. We need to hold a lock
> while modifying the vector.
I don't see how this could happen. I think there is only one Eh_frame
section, created in Layout::make_eh_frame_section. And I think the
only place that an FDE is written out is when the Eh_frame section is
written out, and I think that only happens once. What am I missing?
> + Hold_lock(*this->lock_);
I don't think this works. I think you need to write
Hold_lock hl(*this->lock_);
Ian
More information about the Binutils
mailing list