Author: Vy Nguyen Date: 2025-04-15T11:40:07+02:00 New Revision: 81499edb30665d377a680990ef3c5129f9b54261
URL: https://github.com/llvm/llvm-project/commit/81499edb30665d377a680990ef3c5129f9b54261 DIFF: https://github.com/llvm/llvm-project/commit/81499edb30665d377a680990ef3c5129f9b54261.diff LOG: [NFC][lldb]Fix stack-use-after-free bugs in exit-callbacks. (#135763) Added: Modified: lldb/source/Target/Process.cpp lldb/source/Target/Target.cpp Removed: ################################################################################ diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 633f7488dc76a..73557eb767c72 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -1047,10 +1047,11 @@ bool Process::SetExitStatus(int status, llvm::StringRef exit_string) { info->exit_desc = {status, exit_string.str()}; }); - helper.DispatchOnExit([&](telemetry::ProcessExitInfo *info) { - info->module_uuid = module_uuid; - info->pid = m_pid; - }); + helper.DispatchOnExit( + [module_uuid, pid = m_pid](telemetry::ProcessExitInfo *info) { + info->module_uuid = module_uuid; + info->pid = pid; + }); m_exit_status = status; if (!exit_string.empty()) diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 42b1561fb2993..b6186b76d6236 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -1578,7 +1578,7 @@ void Target::SetExecutableModule(ModuleSP &executable_sp, info->is_start_entry = true; }); - helper.DispatchOnExit([&](telemetry::ExecutableModuleInfo *info) { + helper.DispatchOnExit([&, pid](telemetry::ExecutableModuleInfo *info) { info->exec_mod = executable_sp; info->uuid = executable_sp->GetUUID(); info->pid = pid; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits