[Patch] ld: check for address space overflow

Tristan Gingold gingold@adacore.com
Tue Mar 14 10:50:00 GMT 2017


> On 14 Mar 2017, at 11:19, Alan Modra <amodra@gmail.com> wrote:
> 
> On Tue, Mar 14, 2017 at 09:15:30AM +0100, Tristan Gingold wrote:
>> [...]
>> 
>>> This works:
>>> 
>>> diff --git a/ld/ldlang.c b/ld/ldlang.c
>>> index a0638ea..8c1d829 100644
>>> --- a/ld/ldlang.c
>>> +++ b/ld/ldlang.c
>>> @@ -4783,13 +4783,13 @@ lang_check_section_addresses (void)
>>>  for (s = link_info.output_bfd->sections; s != NULL; s = s->next)
>>>    {
>>>      s_end = (s->vma + s->size) & addr_mask;
>>> -      if (s_end != 0 && s_end < s->vma)
>>> +      if (s_end != 0 && s_end < (s->vma & addr_mask))
>>>  einfo (_("%X%P: section %s VMA wraps around address space\n"),
>>>         s->name);
>>>      else
>>>  {
>>>    s_end = (s->lma + s->size) & addr_mask;
>>> -    if (s_end != 0 && s_end < s->lma)
>>> +    if (s_end != 0 && s_end < (s->lma & addr_mask))
>>>      einfo (_("%X%P: section %s LMA wraps around address space\n"),
>>>        s->name);
>>>  }
>> 
>> Yes, that makes sense.
>> Do you plan to commit it ?
> 
> The new testcases need some tweaking too.  Even after applying the
> above I'm left with:
> 
> arm-aout  +FAIL: section size overflow
> arm-coff  +FAIL: section size overflow
> arm-epoc-pe  +FAIL: section size overflow
> arm-pe  +FAIL: section size overflow
> arm-symbianelf  +FAIL: section size overflow
> arm-wince-pe  +FAIL: section size overflow
> i386-linuxaout  +FAIL: section size overflow
> i386-linuxaout  +FAIL: section size overflow
> i386-lynxos  +FAIL: section size overflow
> i386-netware  +FAIL: section size overflow
> i586-aout  +FAIL: section size overflow
> i686-pe  +FAIL: section size overflow

What is the host ?  32 bit or 64 bit ?



More information about the Binutils mailing list