This is the mail archive of the binutils@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]

PATCH: PR gas/11456: stabs related buffer bug


Hi,

partial_where may point to the middle of buffer_start as seen around
line 391 in input-scrub.c.  We can't use memcpy to copy overlap memory.
We have to use memmove.  I will check this as an obvious fix.


H.J.
---
2010-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/11456
	* input-scrub.c (input_scrub_next_buffer): Use memmove instead
	of memcpy to copy overlap memory.

diff --git a/gas/input-scrub.c b/gas/input-scrub.c
index a2cd31b..e1ff5cc 100644
--- a/gas/input-scrub.c
+++ b/gas/input-scrub.c
@@ -343,8 +343,8 @@ input_scrub_next_buffer (char **bufp)
 
   if (partial_size)
     {
-      memcpy (buffer_start + BEFORE_SIZE, partial_where,
-	      (unsigned int) partial_size);
+      memmove (buffer_start + BEFORE_SIZE, partial_where,
+	       (unsigned int) partial_size);
       memcpy (buffer_start + BEFORE_SIZE, save_source, AFTER_SIZE);
     }
   limit = input_file_give_next_buffer (buffer_start


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