https://github.com/slackito created https://github.com/llvm/llvm-project/pull/150544
lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py fails under msan with uninitialized memory access errors. The problem is that a few structs are written to the dump without having been fully initialized. This change makes them default-initialized so dumping the fields that aren't explicitly written to won't trigger UB. >From 5598dfaf938521f4eeffd7a5c64b4bfd6dd1f7b9 Mon Sep 17 00:00:00 2001 From: Jorge Gorbe Moya <jgo...@google.com> Date: Thu, 24 Jul 2025 15:52:22 -0700 Subject: [PATCH] [lldb] Fix uninitialized memory access. lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py fails under msan with uninitialized memory access errors. The problem is that a few structs are written to the dump without having been fully initialized. This change makes them default-initialized so dumping the fields that aren't explicitly written to won't trigger UB. --- .../Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp b/lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp index fe28213c49740..25e98882c20c9 100644 --- a/lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp +++ b/lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp @@ -201,7 +201,7 @@ Status MinidumpFileBuilder::AddSystemInfo() { return error; }; - llvm::minidump::SystemInfo sys_info; + llvm::minidump::SystemInfo sys_info{}; sys_info.ProcessorArch = static_cast<llvm::support::little_t<ProcessorArchitecture>>(arch); // Global offset to beginning of a csd_string in a data section @@ -378,7 +378,7 @@ Status MinidumpFileBuilder::AddModuleList() { helper_data.AppendData(&signature, sizeof(llvm::support::ulittle32_t)); helper_data.AppendData(uuid.begin(), uuid.size()); - llvm::minidump::Module m; + llvm::minidump::Module m{}; m.BaseOfImage = static_cast<llvm::support::ulittle64_t>( mod->GetObjectFile()->GetBaseAddress().GetLoadAddress(&target)); m.SizeOfImage = static_cast<llvm::support::ulittle32_t>(mod_size); @@ -745,7 +745,7 @@ lldb_private::Status MinidumpFileBuilder::AddMiscInfo() { if (error.Fail()) return error; - lldb_private::minidump::MinidumpMiscInfo misc_info; + lldb_private::minidump::MinidumpMiscInfo misc_info{}; misc_info.size = static_cast<llvm::support::ulittle32_t>( sizeof(lldb_private::minidump::MinidumpMiscInfo)); // Default set flags1 to 0, in case that we will not be able to _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits