am: avoid direct pointer access of transfer memory objects

master
Liam 2023-02-24 12:50:54 +07:00
parent de4e5db330
commit 975186ad4d
1 changed files with 4 additions and 6 deletions

@ -1260,9 +1260,8 @@ void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContex
return; return;
} }
const u8* const mem_begin = system.Memory().GetPointer(transfer_mem->GetSourceAddress()); std::vector<u8> memory(transfer_mem->GetSize());
const u8* const mem_end = mem_begin + transfer_mem->GetSize(); system.Memory().ReadBlock(transfer_mem->GetSourceAddress(), memory.data(), memory.size());
std::vector<u8> memory{mem_begin, mem_end};
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
@ -1294,9 +1293,8 @@ void ILibraryAppletCreator::CreateHandleStorage(Kernel::HLERequestContext& ctx)
return; return;
} }
const u8* const mem_begin = system.Memory().GetPointer(transfer_mem->GetSourceAddress()); std::vector<u8> memory(transfer_mem->GetSize());
const u8* const mem_end = mem_begin + transfer_mem->GetSize(); system.Memory().ReadBlock(transfer_mem->GetSourceAddress(), memory.data(), memory.size());
std::vector<u8> memory{mem_begin, mem_end};
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);