mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
PR24235, Read memory violation in pei-x86_64.c
PR 24235 * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks attempting to prevent read past end of section.
This commit is contained in:
parent
c72e75a640
commit
179f2db0d9
@ -1,3 +1,9 @@
|
||||
2019-02-19 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 24235
|
||||
* pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
|
||||
attempting to prevent read past end of section.
|
||||
|
||||
2019-02-18 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 24225
|
||||
|
@ -541,7 +541,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
|
||||
/* virt_size might be zero for objects. */
|
||||
if (stop == 0 && strcmp (abfd->xvec->name, "pe-x86-64") == 0)
|
||||
{
|
||||
stop = (datasize / onaline) * onaline;
|
||||
stop = datasize;
|
||||
virt_size_is_zero = TRUE;
|
||||
}
|
||||
else if (datasize < stop)
|
||||
@ -551,8 +551,8 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
|
||||
_("Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"),
|
||||
pdata_section->name, (unsigned long) datasize,
|
||||
(unsigned long) stop);
|
||||
/* Be sure not to read passed datasize. */
|
||||
stop = datasize / onaline;
|
||||
/* Be sure not to read past datasize. */
|
||||
stop = datasize;
|
||||
}
|
||||
|
||||
/* Display functions table. */
|
||||
@ -724,8 +724,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
|
||||
altent += imagebase;
|
||||
|
||||
if (altent >= pdata_vma
|
||||
&& (altent + PDATA_ROW_SIZE <= pdata_vma
|
||||
+ pei_section_data (abfd, pdata_section)->virt_size))
|
||||
&& altent - pdata_vma + PDATA_ROW_SIZE <= stop)
|
||||
{
|
||||
pex64_get_runtime_function
|
||||
(abfd, &arf, &pdata[altent - pdata_vma]);
|
||||
|
Loading…
Reference in New Issue
Block a user