Author: Vy Nguyen Date: 2025-04-04T08:00:46-04:00 New Revision: a2e888f5b49113c66b055290cb7069ae88c9d2e1
URL: https://github.com/llvm/llvm-project/commit/a2e888f5b49113c66b055290cb7069ae88c9d2e1 DIFF: https://github.com/llvm/llvm-project/commit/a2e888f5b49113c66b055290cb7069ae88c9d2e1.diff LOG: [LLDB][NFC]Fix stack-use-after free bug. (#134296) Details: detailed_command_telemetry (bool) and command_id (int) could already be freed when the dispatcher's dtor runs. So we should just copy them into the lambda since they are cheap. Added: Modified: lldb/source/Interpreter/CommandInterpreter.cpp Removed: ################################################################################ diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index 949b1191c28f0..112d2f20fda41 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -1918,7 +1918,9 @@ bool CommandInterpreter::HandleCommand(const char *command_line, // Those will be collected by the on-exit-callback. }); - helper.DispatchOnExit([&](lldb_private::telemetry::CommandInfo *info) { + helper.DispatchOnExit([&cmd_obj, &parsed_command_args, &result, + detailed_command_telemetry, command_id]( + lldb_private::telemetry::CommandInfo *info) { // TODO: this is logging the time the command-handler finishes. // But we may want a finer-grain durations too? // (ie., the execute_time recorded below?) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits