This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: PR gas/11456: stabs related buffer bug
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sourceware dot org
- Date: Tue, 30 Mar 2010 16:17:05 -0700
- Subject: PATCH: PR gas/11456: stabs related buffer bug
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
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