From b32a5c16f100c53fd9c0c22464f863eeeec6087a Mon Sep 17 00:00:00 2001 From: Riku Voipio Date: Thu, 15 Oct 2015 12:56:55 +0100 Subject: [PATCH] Use the file_ptr type when calling bfd_seek. PR ld/19123 * elfcore.h (elf_core_file_p): Use the file_ptr type to hold the offset for bfd_seek. * elfcode.h (elf_object_p): Likewise. --- bfd/ChangeLog | 7 +++++++ bfd/elfcode.h | 13 ++++--------- bfd/elfcore.h | 15 +++++---------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5bd8d55ccec..88b7b862e94 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2015-10-15 Riku Voipio + + PR ld/19123 + * elfcore.h (elf_core_file_p): Use the file_ptr type to hold the + offset for bfd_seek. + * elfcode.h (elf_object_p): Likewise. + 2015-10-14 Rich Felker PR ld/19091 diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 7e309cf998e..26af1d18c28 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -605,13 +605,10 @@ elf_object_p (bfd *abfd) if (i_ehdrp->e_shoff != 0) { - bfd_signed_vma where = i_ehdrp->e_shoff; - - if (where != (file_ptr) where) - goto got_wrong_format_error; + file_ptr where = (file_ptr) i_ehdrp->e_shoff; /* Seek to the section header table in the file. */ - if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0) + if (bfd_seek (abfd, where, SEEK_SET) != 0) goto got_no_match; /* Read the first section header at index 0, and convert to internal @@ -657,19 +654,17 @@ elf_object_p (bfd *abfd) goto got_wrong_format_error; where += (i_ehdrp->e_shnum - 1) * sizeof (x_shdr); - if (where != (file_ptr) where) - goto got_wrong_format_error; if ((bfd_size_type) where <= i_ehdrp->e_shoff) goto got_wrong_format_error; - if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0) + if (bfd_seek (abfd, where, SEEK_SET) != 0) goto got_no_match; if (bfd_bread (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr)) goto got_no_match; /* Back to where we were. */ where = i_ehdrp->e_shoff + sizeof (x_shdr); - if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0) + if (bfd_seek (abfd, where, SEEK_SET) != 0) goto got_no_match; } } diff --git a/bfd/elfcore.h b/bfd/elfcore.h index c4e5b43c6b5..93b3cc4b76c 100644 --- a/bfd/elfcore.h +++ b/bfd/elfcore.h @@ -188,13 +188,10 @@ elf_core_file_p (bfd *abfd) { Elf_External_Shdr x_shdr; Elf_Internal_Shdr i_shdr; - bfd_signed_vma where = i_ehdrp->e_shoff; - - if (where != (file_ptr) where) - goto wrong; + file_ptr where = (file_ptr) i_ehdrp->e_shoff; /* Seek to the section header table in the file. */ - if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0) + if (bfd_seek (abfd, where, SEEK_SET) != 0) goto fail; /* Read the first section header at index 0, and convert to internal @@ -217,7 +214,7 @@ elf_core_file_p (bfd *abfd) { Elf_External_Phdr x_phdr; Elf_Internal_Phdr i_phdr; - bfd_signed_vma where; + file_ptr where; /* Check that we don't have a totally silly number of program headers. */ @@ -225,13 +222,11 @@ elf_core_file_p (bfd *abfd) || i_ehdrp->e_phnum > (unsigned int) -1 / sizeof (i_phdr)) goto wrong; - where = i_ehdrp->e_phoff + (i_ehdrp->e_phnum - 1) * sizeof (x_phdr); - if (where != (file_ptr) where) - goto wrong; + where = (file_ptr)(i_ehdrp->e_phoff + (i_ehdrp->e_phnum - 1) * sizeof (x_phdr)); if ((bfd_size_type) where <= i_ehdrp->e_phoff) goto wrong; - if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0) + if (bfd_seek (abfd, where, SEEK_SET) != 0) goto fail; if (bfd_bread (&x_phdr, sizeof (x_phdr), abfd) != sizeof (x_phdr)) goto fail; -- 2.30.2