Fix off-by-one error in cplus name demangling.
authorMichael Tiemann <tiemann@cygnus>
Fri, 6 Dec 1991 03:01:12 +0000 (03:01 +0000)
committerMichael Tiemann <tiemann@cygnus>
Fri, 6 Dec 1991 03:01:12 +0000 (03:01 +0000)
gdb/ChangeLog
gdb/cplus-dem.c

index ea4e7eade560769dd8ce45fdda0f34a57d451d5b..456117eb58924ccc15c9551f5582a88243da3501 100644 (file)
@@ -1,3 +1,8 @@
+Thu Dec  5 18:59:51 1991  Michael Tiemann  (tiemann at cygnus.com)
+
+       * cplus-dem.c (cplus_demangle): Call `string_need' when
+       null-terminating a partially-computed string.
+
 Thu Dec  5 18:19:43 1991  Fred Fish  (fnf at cygnus.com)
 
        * dwarfread.c (enum_type):  Build a correct TYPE_NAME, add a
index b34732c68e7daee4f65ca26f6d7127499880e83d..e58a9552e7153c0d3d177f83974c42bcb249f874 100644 (file)
@@ -338,7 +338,8 @@ cplus_demangle (type, arg_mode)
          p += 1;
          while (*p != '\0' && !(*p == '_' && p[1] == '_'))
            p++;
-         string_appendn (&decl, type, p - type);         
+         string_appendn (&decl, type, p - type);
+         string_need (&decl, 1);
          *(decl.p) = '\0';
          munge_function_name (&decl, 1);
          if (decl.b[0] == '_')
@@ -358,6 +359,7 @@ cplus_demangle (type, arg_mode)
   else
     {
       string_appendn (&decl, type, p - type);
+      string_need (&decl, 1);
       *(decl.p) = '\0';
       munge_function_name (&decl, arg_mode);
       p += 2;