Merge pull request #10308 from aldelaro5/gdb-stub-fix-unkown-pointer

GDB Stub: validate the address exists before reading/writting to it
This commit is contained in:
Léo Lam 2022-01-03 01:33:21 +01:00 committed by GitHub
commit 27a2df410a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 4 deletions

View File

@ -788,9 +788,10 @@ static void ReadMemory()
if (len * 2 > sizeof reply)
SendReply("E01");
if (!PowerPC::HostIsRAMAddress(addr))
return SendReply("E00");
u8* data = Memory::GetPointer(addr);
if (!data)
return SendReply("E0");
Mem2hex(reply, data, len);
reply[len * 2] = '\0';
SendReply((char*)reply);
@ -812,9 +813,9 @@ static void WriteMemory()
len = (len << 4) | Hex2char(s_cmd_bfr[i++]);
INFO_LOG_FMT(GDB_STUB, "gdb: write memory: {:08x} bytes to {:08x}", len, addr);
u8* dst = Memory::GetPointer(addr);
if (!dst)
if (!PowerPC::HostIsRAMAddress(addr))
return SendReply("E00");
u8* dst = Memory::GetPointer(addr);
Hex2mem(dst, s_cmd_bfr + i + 1, len);
SendReply("OK");
}