From: Tom de Vries Date: Thu, 31 Aug 2023 07:37:44 +0000 (+0200) Subject: [gdb/symtab] Fix uninitialized memory in buildsym_compunit::finish_block_internal X-Git-Tag: gdb-14-branchpoint~386 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0b8b932dce26ef8e907b3b3c06b01a99420245fe;p=thirdparty%2Fbinutils-gdb.git [gdb/symtab] Fix uninitialized memory in buildsym_compunit::finish_block_internal 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 PR symtab/30810 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30810 --- diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 832b689cf03..65ce3a0f5a8 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -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