diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-03-15 11:00:44 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-03-15 11:00:44 +0100 |
commit | c68b1842bdb3cedce0cac7da43045c3788085a91 (patch) | |
tree | 9f9e316d7621c53ca03359f1d53baca52f6d634e | |
parent | ba6a0ef34933712ec65855997e982bead3b314d4 (diff) | |
download | gdb-c68b1842bdb3cedce0cac7da43045c3788085a91.zip gdb-c68b1842bdb3cedce0cac7da43045c3788085a91.tar.gz gdb-c68b1842bdb3cedce0cac7da43045c3788085a91.tar.bz2 |
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.
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/pe-dll.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index fe68e6d..01b93c5 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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.. diff --git a/ld/pe-dll.c b/ld/pe-dll.c index afcf6fe..eaecb95 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -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 |