Change bfd_get_size/bfd_get_file_size to ufile_ptr
bfd_get_size and bfd_get_file_size should return the unsigned file size. Otherwise they return negative values for file >= 2GB with 32-bit ufile_ptr. bfd/ * bfd-in2.h: Regenerated. * bfdio.c (bfd_get_size): Change return type to ufile_ptr. (bfd_get_file_size): Likewise. binutils/ * objdump.c (dump_relocs_in_section): Cast to ufile_ptr when comparing against bfd_get_file_size return.
This commit is contained in:
parent
6e75794e9d
commit
47fdcf63c0
@ -1,3 +1,9 @@
|
||||
2017-06-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* bfd-in2.h: Regenerated.
|
||||
* bfdio.c (bfd_get_size): Change return type to ufile_ptr.
|
||||
(bfd_get_file_size): Likewise.
|
||||
|
||||
2017-06-28 Maciej W. Rozycki <macro@imgtec.com>
|
||||
Matthew Fortune <matthew.fortune@imgtec.com>
|
||||
|
||||
|
||||
@ -1240,9 +1240,9 @@ char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir);
|
||||
/* Extracted from bfdio.c. */
|
||||
long bfd_get_mtime (bfd *abfd);
|
||||
|
||||
file_ptr bfd_get_size (bfd *abfd);
|
||||
ufile_ptr bfd_get_size (bfd *abfd);
|
||||
|
||||
file_ptr bfd_get_file_size (bfd *abfd);
|
||||
ufile_ptr bfd_get_file_size (bfd *abfd);
|
||||
|
||||
void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
|
||||
int prot, int flags, file_ptr offset,
|
||||
|
||||
@ -392,7 +392,7 @@ FUNCTION
|
||||
bfd_get_size
|
||||
|
||||
SYNOPSIS
|
||||
file_ptr bfd_get_size (bfd *abfd);
|
||||
ufile_ptr bfd_get_size (bfd *abfd);
|
||||
|
||||
DESCRIPTION
|
||||
Return the file size (as read from file system) for the file
|
||||
@ -420,7 +420,7 @@ DESCRIPTION
|
||||
size reasonable?".
|
||||
*/
|
||||
|
||||
file_ptr
|
||||
ufile_ptr
|
||||
bfd_get_size (bfd *abfd)
|
||||
{
|
||||
struct stat buf;
|
||||
@ -439,7 +439,7 @@ FUNCTION
|
||||
bfd_get_file_size
|
||||
|
||||
SYNOPSIS
|
||||
file_ptr bfd_get_file_size (bfd *abfd);
|
||||
ufile_ptr bfd_get_file_size (bfd *abfd);
|
||||
|
||||
DESCRIPTION
|
||||
Return the file size (as read from file system) for the file
|
||||
@ -448,7 +448,7 @@ DESCRIPTION
|
||||
|
||||
*/
|
||||
|
||||
file_ptr
|
||||
ufile_ptr
|
||||
bfd_get_file_size (bfd *abfd)
|
||||
{
|
||||
if (abfd->my_archive != NULL
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
2017-06-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* objdump.c (dump_relocs_in_section): Cast to ufile_ptr when
|
||||
comparing against bfd_get_file_size return.
|
||||
|
||||
2017-06-28 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* objcopy.c (merge_gnu_build_notes): Add support for version 2 notes.
|
||||
|
||||
@ -3388,7 +3388,7 @@ dump_relocs_in_section (bfd *abfd,
|
||||
}
|
||||
|
||||
if ((bfd_get_file_flags (abfd) & (BFD_IN_MEMORY | BFD_LINKER_CREATED)) == 0
|
||||
&& relsize > bfd_get_file_size (abfd))
|
||||
&& (ufile_ptr) relsize > bfd_get_file_size (abfd))
|
||||
{
|
||||
printf (" (too many: 0x%x)\n", section->reloc_count);
|
||||
bfd_set_error (bfd_error_file_truncated);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user