Skip to content

Commit 403fe3d

Browse files
committed
Update patch to move the check for memory regions to
Process::GetMemoryRegionInfo - I want to reject these regions from either gdb remote serial protocol stubs, or scripted processes.
1 parent 0e57707 commit 403fe3d

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -288,17 +288,8 @@ Status ScriptedProcess::DoGetMemoryRegionInfo(lldb::addr_t load_addr,
288288
MemoryRegionInfo &region) {
289289
Status error;
290290
if (auto region_or_err =
291-
GetInterface().GetMemoryRegionContainingAddress(load_addr, error)) {
291+
GetInterface().GetMemoryRegionContainingAddress(load_addr, error))
292292
region = *region_or_err;
293-
// Reject a region of {0,0} or {0,UINT64_MAX}, neither are
294-
// meaningful responses.
295-
if (region.GetRange().GetRangeBase() == 0 &&
296-
(region.GetRange().GetByteSize() == 0 ||
297-
region.GetRange().GetByteSize() == UINT64_MAX)) {
298-
error = Status::FromErrorString(
299-
"Invalid memory region from scripted process");
300-
}
301-
}
302293

303294
return error;
304295
}

lldb/source/Target/Process.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6184,7 +6184,16 @@ Status Process::GetMemoryRegionInfo(lldb::addr_t load_addr,
61846184
MemoryRegionInfo &range_info) {
61856185
if (const lldb::ABISP &abi = GetABI())
61866186
load_addr = abi->FixAnyAddress(load_addr);
6187-
return DoGetMemoryRegionInfo(load_addr, range_info);
6187+
Status error = DoGetMemoryRegionInfo(load_addr, range_info);
6188+
// Reject a region of {0,0} or {0,UINT64_MAX}, neither are
6189+
// meaningful responses.
6190+
if (error.Success() && range_info.GetRange().GetRangeBase() == 0 &&
6191+
(range_info.GetRange().GetByteSize() == 0 ||
6192+
range_info.GetRange().GetByteSize() == UINT64_MAX))
6193+
error =
6194+
Status::FromErrorString("Invalid memory region from scripted process");
6195+
6196+
return error;
61886197
}
61896198

61906199
Status Process::GetMemoryRegions(lldb_private::MemoryRegionInfos &region_list) {

0 commit comments

Comments
 (0)