Binutils objcopy bug (was Re: rebase segfault)

marco atzeri marco.atzeri@gmail.com
Fri Jan 18 15:34:00 GMT 2013


On 1/16/2013 1:35 PM, Corinna Vinschen wrote:
>
> As far as I can tell it's an objcopy bug.
>
> The stripped version of the DLL has a normal relocation information
> which at one point ends in a NULL IMAGE_BASE_RELOCATION record, as
> expected.  After calling `objcopy --add-gnu-debuglink', the relocation
> information is supposed to be the same as before, since the relocatable
> file content didn't change.
>
> Nevertheless, when stepping through the relocator code in rebase, it
> turns out that the former NULL IMAGE_BASE_RELOCATION record does not
> contain only 0 values anymore.  Rather, it has been overwritten with
> some random(?) non-0 values, which rebase correctly interprets as the
> start of the next IMAGE_BASE_RELOCATION array.  So rebase blunders
> along, thus either just SEGVing, if everything goes well, or, worst
> case, overwriting formerly correct information in the file with
> arbitrary data.
>
> This is a serious bug in objcopy in the current binutils.  Given that
> cygport creates the debug info automatically, we might end up with
> spuriously broken DLLs in the distro.
>
> I checked with objcopy from the older binutils 2.51.53-2, and the
> problem did not show up.  I also built the latest binutils release
> 2.23.1 and the problem also doesn't show, so we probably can get away
> with just a black eye by updating binutils to 2.23.1.  Chris?
>
>
> Corinna
>

Chris,
any news ?

Marco



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list