mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-30 05:23:49 +08:00
More fixes for bfd_get_section_contents change
PR binutils/21665 * libbfd.c (_bfd_generic_get_section_contents): Delete abort. Use unsigned file pointer type, and remove cast. * libbfd.c (_bfd_generic_get_section_contents_in_window): Likewise. Add "count", not "sz".
This commit is contained in:
parent
dc819143fe
commit
7211ae501e
@ -1,3 +1,11 @@
|
||||
2017-06-27 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR binutils/21665
|
||||
* libbfd.c (_bfd_generic_get_section_contents): Delete abort.
|
||||
Use unsigned file pointer type, and remove cast.
|
||||
* libbfd.c (_bfd_generic_get_section_contents_in_window): Likewise.
|
||||
Add "count", not "sz".
|
||||
|
||||
2017-06-26 Pedro Alves <palves@redhat.com>
|
||||
|
||||
PR binutils/21665
|
||||
|
18
bfd/libbfd.c
18
bfd/libbfd.c
@ -789,7 +789,7 @@ _bfd_generic_get_section_contents (bfd *abfd,
|
||||
bfd_size_type count)
|
||||
{
|
||||
bfd_size_type sz;
|
||||
file_ptr filesz;
|
||||
ufile_ptr filesz;
|
||||
if (count == 0)
|
||||
return TRUE;
|
||||
|
||||
@ -813,14 +813,9 @@ _bfd_generic_get_section_contents (bfd *abfd,
|
||||
else
|
||||
sz = section->size;
|
||||
filesz = bfd_get_file_size (abfd);
|
||||
if (filesz < 0)
|
||||
{
|
||||
/* This should never happen. */
|
||||
abort ();
|
||||
}
|
||||
if (offset + count < count
|
||||
|| offset + count > sz
|
||||
|| (section->filepos + offset + count) > (bfd_size_type) filesz)
|
||||
|| section->filepos + offset + count > filesz)
|
||||
{
|
||||
bfd_set_error (bfd_error_invalid_operation);
|
||||
return FALSE;
|
||||
@ -843,7 +838,7 @@ _bfd_generic_get_section_contents_in_window
|
||||
{
|
||||
#ifdef USE_MMAP
|
||||
bfd_size_type sz;
|
||||
file_ptr filesz;
|
||||
ufile_ptr filesz;
|
||||
|
||||
if (count == 0)
|
||||
return TRUE;
|
||||
@ -877,13 +872,8 @@ _bfd_generic_get_section_contents_in_window
|
||||
else
|
||||
sz = section->size;
|
||||
filesz = bfd_get_file_size (abfd);
|
||||
if (filesz < 0)
|
||||
{
|
||||
/* This should never happen. */
|
||||
abort ();
|
||||
}
|
||||
if (offset + count > sz
|
||||
|| (section->filepos + offset + sz) > (bfd_size_type) filesz
|
||||
|| section->filepos + offset + count > filesz
|
||||
|| ! bfd_get_file_window (abfd, section->filepos + offset, count, w,
|
||||
TRUE))
|
||||
return FALSE;
|
||||
|
Loading…
Reference in New Issue
Block a user