* objcopy.c (add_redefine_syms_file): Avoid symbol buffer
authorNick Clifton <nickc@redhat.com>
Thu, 31 Dec 2009 14:40:36 +0000 (14:40 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 31 Dec 2009 14:40:36 +0000 (14:40 +0000)
        overrun.

binutils/ChangeLog
binutils/objcopy.c

index e0ff398..2dfa3b9 100644 (file)
@@ -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.
index 20f867c..bd8dcec 100644 (file)
@@ -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);
        }