2009-10-08 Paul Pluzhnikov <ppluzhnikov@google.com>
authorPaul Pluzhnikov <ppluzhnikov@google.com>
Thu, 8 Oct 2009 16:38:42 +0000 (16:38 +0000)
committerPaul Pluzhnikov <ppluzhnikov@google.com>
Thu, 8 Oct 2009 16:38:42 +0000 (16:38 +0000)
PR gdb/10457
* elfread.c (elf_symtab_read): Don't use alloca in a loop.

gdb/ChangeLog
gdb/elfread.c

index b807c8581f50b347794ffae5c9a5e18dfc0ae86b..744bf7ca03aa01e79515ccf511f3da4cf8e1b0d7 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-08  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       PR gdb/10457
+       * elfread.c (elf_symtab_read): Don't use alloca in a loop.
+       
 2009-10-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * i386-nat.c (i386_stopped_by_hwbp): Remove.
index 6e79d4abbd0c92abd16317f1cb43c0d6f0c08357..767dfe6b214657a54bf7331b9cd71b3c22d44978 100644 (file)
@@ -535,7 +535,7 @@ elf_symtab_read (struct objfile *objfile, int type,
 
              if (len > 4 && strcmp (sym->name + len - 4, "@plt") == 0)
                {
-                 char *base_name = alloca (len - 4 + 1);
+                 char *base_name = xmalloc (len - 4 + 1);
                  struct minimal_symbol *mtramp;
 
                  memcpy (base_name, sym->name, len - 4);
@@ -543,6 +543,7 @@ elf_symtab_read (struct objfile *objfile, int type,
                  mtramp = record_minimal_symbol (base_name, symaddr,
                                                  mst_solib_trampoline,
                                                  sym->section, objfile);
+                 xfree (base_name);
                  if (mtramp)
                    {
                      MSYMBOL_SIZE (mtramp) = MSYMBOL_SIZE (msym);