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] add casts to avoid arithmetic on void *


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

commit 28cc9170c3d0bc0c5e82b45a10015e4bbcb01125
Author: Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
Date:   Wed Apr 13 05:17:31 2016 -0400

    add casts to avoid arithmetic on void *
    
    arithmetic on void * is undefined in ISO C, so we should avoid it.  In
    GNU C sizeof void * is defined as 1, and that is pretty clearly what
    this code wants, so change it to do arithmetic on bfd_byte *.
    Unfortunately most of the argument types come from virtual function
    interfaces so changing the types to bfd_byte * isn't trivial though it
    might make the code clearer.  So for the moment its easiest to leave the
    variable types as void * and cast before doing arithmetic.
    
    bfd/ChangeLog:
    
    2016-04-26  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
    
    	* elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *.
    	* mmo.c (mmo_get_section_contents): Likewise.
    	(mmo_set_section_contents): Likewise.

Diff:
---
 bfd/ChangeLog  | 6 ++++++
 bfd/elf32-rx.c | 6 +++---
 bfd/mmo.c      | 4 ++--
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 746adad..8f4de69 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2016-04-26  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+	* elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *.
+	* mmo.c (mmo_get_section_contents): Likewise.
+	(mmo_set_section_contents): Likewise.
+
 2016-04-26  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* elf-bfd.h (elf_link_hash_table): Update comments for
diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c
index 754eae1..147a1a3 100644
--- a/bfd/elf32-rx.c
+++ b/bfd/elf32-rx.c
@@ -3548,7 +3548,7 @@ rx_set_section_contents (bfd *         abfd,
       if (! rv)
 	return rv;
 
-      location ++;
+      location = (bfd_byte *) location + 1;
       offset ++;
       count --;
       caddr ++;
@@ -3574,7 +3574,7 @@ rx_set_section_contents (bfd *         abfd,
     }
 
   count -= scount;
-  location += scount;
+  location = (bfd_byte *) location + scount;
   offset += scount;
 
   if (count > 0)
@@ -3593,7 +3593,7 @@ rx_set_section_contents (bfd *         abfd,
 	  if (! rv)
 	    return rv;
 
-	  location ++;
+	  location = (bfd_byte *) location + 1;
 	  offset ++;
 	  count --;
 	  caddr ++;
diff --git a/bfd/mmo.c b/bfd/mmo.c
index b8af63a..dbfc9ac 100644
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -2120,7 +2120,7 @@ mmo_get_section_contents (bfd *abfd ATTRIBUTE_UNUSED,
 
       memcpy (location, loc, chunk_size);
 
-      location += chunk_size;
+      location = (bfd_byte *) location + chunk_size;
       bytes_to_do -= chunk_size;
       offset += chunk_size;
     }
@@ -2657,7 +2657,7 @@ mmo_set_section_contents (bfd *abfd ATTRIBUTE_UNUSED, sec_ptr sec,
 
       memcpy (loc, location, chunk_size);
 
-      location += chunk_size;
+      location = (bfd_byte *) location + chunk_size;
       bytes_to_do -= chunk_size;
       offset += chunk_size;
     }


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