aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/objcopy.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 84ea185..688d569 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2012-11-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * objcopy.c (copy_section): Don't read beyond section end.
+
2012-11-06 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/14567
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index f44ebcd..4860864 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -2823,7 +2823,11 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
for (; from < end; from += interleave)
for (i = 0; i < copy_width; i++)
- *to++ = from[i];
+ {
+ if (&from[i] >= end)
+ break;
+ *to++ = from[i];
+ }
size = (size + interleave - 1 - copy_byte) / interleave * copy_width;
osection->lma /= interleave;