[Lldb-commits] [PATCH] D153840: [LLDB] Fix buffer overflow problem in DWARFExpression::Evaluate.
Caroline Tice via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Jun 28 11:48:35 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rGee476996bec7: [LLDB] Fix buffer overflow problem in DWARFExpression::Evaluate. (authored by cmtice).
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
Changed prior to commit:
https://reviews.llvm.org/D153840?vs=534856&id=535482#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D153840/new/
https://reviews.llvm.org/D153840
Files:
lldb/source/Expression/DWARFExpression.cpp
Index: lldb/source/Expression/DWARFExpression.cpp
===================================================================
--- lldb/source/Expression/DWARFExpression.cpp
+++ lldb/source/Expression/DWARFExpression.cpp
@@ -1138,15 +1138,16 @@
if (load_addr == LLDB_INVALID_ADDRESS && so_addr.IsSectionOffset()) {
uint8_t addr_bytes[8];
+ size_t buf_size = sizeof(addr_bytes);
Status error;
if (target &&
- target->ReadMemory(so_addr, &addr_bytes, size, error,
- /*force_live_memory=*/false) == size) {
+ target->ReadMemory(so_addr, &addr_bytes, buf_size, error,
+ /*force_live_memory=*/false) == buf_size) {
ObjectFile *objfile = module_sp->GetObjectFile();
stack.back().GetScalar() = DerefSizeExtractDataHelper(
- addr_bytes, size, objfile->GetByteOrder(), size);
+ addr_bytes, size, objfile->GetByteOrder(), buf_size);
stack.back().ClearContext();
break;
} else {
@@ -1170,13 +1171,13 @@
lldb::addr_t pointer_addr =
stack.back().GetScalar().ULongLong(LLDB_INVALID_ADDRESS);
uint8_t addr_bytes[sizeof(lldb::addr_t)];
+ size_t buf_size = sizeof(addr_bytes);
Status error;
- if (process->ReadMemory(pointer_addr, &addr_bytes, size, error) ==
- size) {
-
+ if (process->ReadMemory(pointer_addr, &addr_bytes, buf_size, error)
+ == buf_size) {
stack.back().GetScalar() =
DerefSizeExtractDataHelper(addr_bytes, sizeof(addr_bytes),
- process->GetByteOrder(), size);
+ process->GetByteOrder(), buf_size);
stack.back().ClearContext();
} else {
if (error_ptr)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153840.535482.patch
Type: text/x-patch
Size: 1968 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20230628/e359d6c1/attachment.bin>
More information about the lldb-commits
mailing list