Skip to content

Commit 5f6c558

Browse files
committed
Revert "[LLDB] Fix buffer overflow problem in DWARFExpression::Evaluate."
This reverts commit ee47699. That commit was not the right way to fix the issue (it could result in reading too many bytes). A better fix is in the works. Original review: https://reviews.llvm.org/D153840
1 parent 8df7596 commit 5f6c558

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

lldb/source/Expression/DWARFExpression.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,16 +1127,15 @@ bool DWARFExpression::Evaluate(
11271127

11281128
if (load_addr == LLDB_INVALID_ADDRESS && so_addr.IsSectionOffset()) {
11291129
uint8_t addr_bytes[8];
1130-
size_t buf_size = sizeof(addr_bytes);
11311130
Status error;
11321131

11331132
if (target &&
1134-
target->ReadMemory(so_addr, &addr_bytes, buf_size, error,
1135-
/*force_live_memory=*/false) == buf_size) {
1133+
target->ReadMemory(so_addr, &addr_bytes, size, error,
1134+
/*force_live_memory=*/false) == size) {
11361135
ObjectFile *objfile = module_sp->GetObjectFile();
11371136

11381137
stack.back().GetScalar() = DerefSizeExtractDataHelper(
1139-
addr_bytes, size, objfile->GetByteOrder(), buf_size);
1138+
addr_bytes, size, objfile->GetByteOrder(), size);
11401139
stack.back().ClearContext();
11411140
break;
11421141
} else {
@@ -1160,13 +1159,13 @@ bool DWARFExpression::Evaluate(
11601159
lldb::addr_t pointer_addr =
11611160
stack.back().GetScalar().ULongLong(LLDB_INVALID_ADDRESS);
11621161
uint8_t addr_bytes[sizeof(lldb::addr_t)];
1163-
size_t buf_size = sizeof(addr_bytes);
11641162
Status error;
1165-
if (process->ReadMemory(pointer_addr, &addr_bytes, buf_size, error)
1166-
== buf_size) {
1163+
if (process->ReadMemory(pointer_addr, &addr_bytes, size, error) ==
1164+
size) {
1165+
11671166
stack.back().GetScalar() =
11681167
DerefSizeExtractDataHelper(addr_bytes, sizeof(addr_bytes),
1169-
process->GetByteOrder(), buf_size);
1168+
process->GetByteOrder(), size);
11701169
stack.back().ClearContext();
11711170
} else {
11721171
if (error_ptr)

0 commit comments

Comments
 (0)