[lldb] Fix stack-use-after-scope issue in ScriptedInterface.h
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Tue, 7 Mar 2023 00:35:03 +0000 (16:35 -0800)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Tue, 7 Mar 2023 00:35:24 +0000 (16:35 -0800)
This patch should fix a `stack-use-after-scope` in the helper function
`ScriptedInterface::ErrorWithMessage`.

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
lldb/include/lldb/Interpreter/ScriptedInterface.h

index 8785e31..ab61425 100644 (file)
@@ -40,12 +40,16 @@ public:
                               LLDBLog log_caterogy = LLDBLog::Process) {
     LLDB_LOGF(GetLog(log_caterogy), "%s ERROR = %s", caller_name.data(),
               error_msg.data());
-    llvm::Twine err = llvm::Twine(caller_name + llvm::Twine(" ERROR = ") +
-                                  llvm::Twine(error_msg));
+    std::string full_error_message =
+        llvm::Twine(caller_name + llvm::Twine(" ERROR = ") +
+                    llvm::Twine(error_msg))
+            .str();
     if (const char *detailed_error = error.AsCString())
-      err.concat(llvm::Twine(" (") + llvm::Twine(detailed_error) +
-                 llvm::Twine(")"));
-    error.SetErrorString(err.str());
+      full_error_message +=
+          llvm::Twine(llvm::Twine(" (") + llvm::Twine(detailed_error) +
+                      llvm::Twine(")"))
+              .str();
+    error.SetErrorString(full_error_message);
     return {};
   }