[Lldb-commits] [lldb] [NFC][lldb]Fix stack-use-after-free bugs in exit-callbacks. (PR #135763)
Vy Nguyen via lldb-commits
lldb-commits at lists.llvm.org
Tue Apr 15 01:50:40 PDT 2025
https://github.com/oontvoo created https://github.com/llvm/llvm-project/pull/135763
None
>From dd74c3abe3a69e6c3cc4b9c22a38ca09997848f7 Mon Sep 17 00:00:00 2001
From: Vy Nguyen <vyng at google.com>
Date: Tue, 15 Apr 2025 04:42:30 -0400
Subject: [PATCH] [NFC][lldb]Fix stack-use-after-free bugs in exit-callbacks.
---
lldb/source/Target/Process.cpp | 9 +++++----
lldb/source/Target/Target.cpp | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
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;
More information about the lldb-commits
mailing list