This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Use the file_ptr type when calling bfd_seek.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b32a5c16f100c53fd9c0c22464f863eeeec6087a

commit b32a5c16f100c53fd9c0c22464f863eeeec6087a
Author: Riku Voipio <riku.voipio@iki.fi>
Date:   Thu Oct 15 12:56:55 2015 +0100

    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.

Diff:
---
 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 5bd8d55..88b7b86 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2015-10-15  Riku Voipio  <riku.voipio@iki.fi>
+
+	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  <dalias@libc.org>
 
 	PR ld/19091
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 7e309cf..26af1d1 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 c4e5b43..93b3cc4 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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]