aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/objcopy.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index e0ff398..2dfa3b9 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2009-12-31 Eirik Byrkjeflot Anonsen <eirik@opera.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * objcopy.c (add_redefine_syms_file): Avoid symbol buffer
+ overrun.
+
2009-12-21 Alan Modra <amodra@gmail.com>
* MAINTAINERS: Update my email address.
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 20f867c..bd8dcec 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1232,7 +1232,7 @@ add_redefine_syms_file (const char *filename)
filename, strerror (errno));
bufsize = 100;
- buf = (char *) xmalloc (bufsize);
+ buf = (char *) xmalloc (bufsize + 1 /* For the terminating NUL. */);
lineno = 1;
c = getc (file);
@@ -1249,7 +1249,7 @@ add_redefine_syms_file (const char *filename)
if (len >= bufsize)
{
bufsize *= 2;
- buf = (char *) xrealloc (buf, bufsize);
+ buf = (char *) xrealloc (buf, bufsize + 1);
}
c = getc (file);
}
@@ -1275,7 +1275,7 @@ add_redefine_syms_file (const char *filename)
if (len >= bufsize)
{
bufsize *= 2;
- buf = (char *) xrealloc (buf, bufsize);
+ buf = (char *) xrealloc (buf, bufsize + 1);
}
c = getc (file);
}