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

Reply via email to