]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/symtab] Fix uninitialized memory in buildsym_compunit::finish_block_internal
authorTom de Vries <tdevries@suse.de>
Thu, 31 Aug 2023 07:37:44 +0000 (09:37 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 31 Aug 2023 07:37:44 +0000 (09:37 +0200)
When running test-case gdb.dwarf2/per-bfd-sharing.exp with target board stabs,
gdb either segfaults or asserts due to reading uninitialized memory, allocated
here in buildsym_compunit::finish_block_internal:
...
      ftype->set_fields
((struct field *)
 TYPE_ALLOC (ftype, nparams * sizeof (struct field)));
...

Fix this by using TYPE_ZALLOC instead.

Tested on x86_64-linux.

Approved-By: Tom Tromey <tom@tromey.com>
PR symtab/30810
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30810

gdb/buildsym.c

index 832b689cf03a47e3bd110d1cef10cb8d5944ae91..65ce3a0f5a8664444d71d6b3f8f41c57440e09ca 100644 (file)
@@ -267,7 +267,7 @@ buildsym_compunit::finish_block_internal
              ftype->set_num_fields (nparams);
              ftype->set_fields
                ((struct field *)
-                TYPE_ALLOC (ftype, nparams * sizeof (struct field)));
+                TYPE_ZALLOC (ftype, nparams * sizeof (struct field)));
 
              iparams = 0;
              /* Here we want to directly access the dictionary, because