[Lldb-commits] [lldb] [LLDB]Fix buffer-over-flow bug introduced in 157170 (PR #159588)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Sep 18 07:42:12 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Vy Nguyen (oontvoo)
<details>
<summary>Changes</summary>
If `pr_name` is longer than 16, it would be a non-null terminated string. Assigning it to `std::string m_executable_name` would cause an overflow read. Instead, just copy the name from thread_data.name.
(Question: why is the new variable needed in the first place? can't the thread_data.name be used?)
---
Full diff: https://github.com/llvm/llvm-project/pull/159588.diff
1 Files Affected:
- (modified) lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp (+1-1)
``````````diff
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
index 8f5f1242116f5..38bf13543c617 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
@@ -952,7 +952,7 @@ llvm::Error ProcessElfCore::parseLinuxNotes(llvm::ArrayRef<CoreNote> notes) {
return status.ToError();
thread_data.name.assign (prpsinfo.pr_fname, strnlen (prpsinfo.pr_fname, sizeof (prpsinfo.pr_fname)));
SetID(prpsinfo.pr_pid);
- m_executable_name = prpsinfo.pr_fname;
+ m_executable_name = thread_data.name;
break;
}
case ELF::NT_SIGINFO: {
``````````
</details>
https://github.com/llvm/llvm-project/pull/159588
More information about the lldb-commits
mailing list