bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/29389] Failed assertions in bfd/cofflink.c and bfd/coff-x8


From: luca.bacci at outlook dot com
Subject: [Bug binutils/29389] Failed assertions in bfd/cofflink.c and bfd/coff-x86_64.c during the linking stage (MSYS2 MinGW64)
Date: Sat, 30 Jul 2022 13:05:33 +0000

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

--- Comment #8 from Luca Bacci <luca.bacci at outlook dot com> ---
I have now more insights into what's going on...

The issue stems from passing repeated import libs to the linker:

    ld.bfd -o out ... subprojects/glib/gobject/libgobject-2.0.dll.a ...
"D:/msys64/mingw64/lib/libgobject-2.0.dll.a" ...

The contents of the two import libs are very similar, of course, They both look
like:

    ...
    !<arch>
    /               0           0     0     0       28890     `
    ... 
    libgobject_2_0_0_dll_d000481.o/
    libgobject_2_0_0_dll_d000481.o/
    libgobject_2_0_0_dll_d000009.o/
    libgobject_2_0_0_dll_d000480.o/
    libgobject_2_0_0_dll_d000479.o/
    libgobject_2_0_0_dll_d000478.o/
    libgobject_2_0_0_dll_d000477.o/
    libgobject_2_0_0_dll_d000476.o/
    libgobject_2_0_0_dll_d000475.o/
    libgobject_2_0_0_dll_d000474.o/
    libgobject_2_0_0_dll_d000473.o/
    libgobject_2_0_0_dll_d000472.o/
    libgobject_2_0_0_dll_d000471.o/
    libgobject_2_0_0_dll_d000470.o/
    libgobject_2_0_0_dll_d000469.o/
    libgobject_2_0_0_dll_d000468.o/
    libgobject_2_0_0_dll_d000467.o/
    libgobject_2_0_0_dll_d000466.o/
    libgobject_2_0_0_dll_d000465.o/
    ...

By tracing calls to _bfd_coff_link_input_bfd() we get:

    libgobject_2_0_0_dll_d000472.o
    libgobject_2_0_0_dll_d000471.o
    libgobject_2_0_0_dll_d000470.o
    libgobject_2_0_0_dll_d000469.o
    libgobject_2_0_0_dll_d000468.o
    libgobject_2_0_0_dll_d000467.o
    libgobject_2_0_0_dll_d000465.o
    libgobject_2_0_0_dll_d000464.o
    libgobject_2_0_0_dll_d000463.o
    libgobject_2_0_0_dll_d000462.o
    libgobject_2_0_0_dll_d000461.o
    libgobject_2_0_0_dll_d000460.o
    libgobject_2_0_0_dll_d000459.o
    libgobject_2_0_0_dll_d000457.o
    libgobject_2_0_0_dll_d000456.o
    libgobject_2_0_0_dll_d000454.o
    libgobject_2_0_0_dll_d000453.o
    libgobject_2_0_0_dll_d000451.o
    libgobject_2_0_0_dll_d000449.o
    libgobject_2_0_0_dll_d000448.o
    libgobject_2_0_0_dll_d000446.o
    libgobject_2_0_0_dll_d000445.o
    libgobject_2_0_0_dll_d000443.o
    libgobject_2_0_0_dll_d000442.o
    libgobject_2_0_0_dll_d000441.o
    libgobject_2_0_0_dll_d000440.o
    libgobject_2_0_0_dll_d000439.o
    libgobject_2_0_0_dll_d000436.o
    libgobject_2_0_0_dll_d000435.o
    libgobject_2_0_0_dll_d000434.o
    libgobject_2_0_0_dll_d000432.o
    libgobject_2_0_0_dll_d000431.o
    libgobject_2_0_0_dll_d000430.o
    libgobject_2_0_0_dll_d000429.o
    libgobject_2_0_0_dll_d000428.o
    libgobject_2_0_0_dll_d000427.o
    libgobject_2_0_0_dll_d000426.o
    libgobject_2_0_0_dll_d000425.o
    libgobject_2_0_0_dll_d000424.o
    libgobject_2_0_0_dll_d000423.o
    libgobject_2_0_0_dll_d000422.o
    libgobject_2_0_0_dll_d000421.o
    libgobject_2_0_0_dll_d000420.o
    libgobject_2_0_0_dll_d000419.o
    libgobject_2_0_0_dll_d000418.o
    libgobject_2_0_0_dll_d000417.o
    libgobject_2_0_0_dll_d000416.o
    libgobject_2_0_0_dll_d000415.o
    libgobject_2_0_0_dll_d000414.o
    libgobject_2_0_0_dll_d000413.o
    libgobject_2_0_0_dll_d000412.o
    libgobject_2_0_0_dll_d000411.o
    libgobject_2_0_0_dll_d000410.o
    libgobject_2_0_0_dll_d000409.o
    libgobject_2_0_0_dll_d000408.o
    libgobject_2_0_0_dll_d000407.o
    libgobject_2_0_0_dll_d000406.o
    libgobject_2_0_0_dll_d000405.o
    libgobject_2_0_0_dll_d000403.o
    libgobject_2_0_0_dll_d000402.o
    libgobject_2_0_0_dll_d000401.o
    libgobject_2_0_0_dll_d000385.o
    ...
    libgobject_2_0_0_dll_d000036.o
    libgobject_2_0_0_dll_d000035.o
    libgobject_2_0_0_dll_d000034.o
    libgobject_2_0_0_dll_d000033.o
    libgobject_2_0_0_dll_d000032.o
    libgobject_2_0_0_dll_d000030.o
    libgobject_2_0_0_dll_d000029.o
    libgobject_2_0_0_dll_d000028.o
    libgobject_2_0_0_dll_d000027.o
    libgobject_2_0_0_dll_d000013.o
    libgobject_2_0_0_dll_d000431.o <-- CRASH!

As you can see, the crash happens when executing _bfd_coff_link_input_bfd() the
first time with a repeated input_bfd->filename. There we use already freed
data.

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]