ld: don't chance overrunning PE .reloc section content

The allocation of reloc_d doesn't take reloc_s->size into account. There
is already padding being emitted up to the allocated size. While
reloc_s->size ought to still be zero at this point anyway (and hence the
code being deleted would have been just dead), don't risk writing past
the actual allocation.
This commit is contained in:
Jan Beulich 2021-03-15 11:00:44 +01:00
parent ba6a0ef349
commit c68b1842bd
2 changed files with 4 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2021-03-15 Jan Beulich <jbeulich@suse.com>
* pe-dll.c (generate_reloc): Drop padding to reloc_s->size.
2021-03-12 Alan Modra <amodra@gmail.com>
* Makefile.am (ALL_EMULATION_SOURCES): Move riscv files to..

View File

@ -1752,9 +1752,6 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
if (page_ptr != (bfd_vma) -1)
bfd_put_32 (abfd, reloc_sz - page_ptr, reloc_d + page_ptr + 4);
while (reloc_sz < reloc_s->size)
reloc_d[reloc_sz++] = 0;
}
/* Given the exiting def_file structure, print out a .DEF file that