You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
while (!is_suitable() && dmem_area->second.GetEnd() <= search_end) {
dmem_area++;
}
ASSERT_MSG(is_suitable(), "Unable to find free direct memory area: size = {:#x}", size);
Some games can expect to run out of memory and take measures, but shadPS4 currently just runs into undefined behavior and crashes.
I think there's even more examples within that file so I think it should be slightly reworked to handled out of memory scenarios by returning ENOMEM
Furthermore, the following check is present on sceKernelMemoryPoolReserve:
However, CUSA49295 calls sceKernelMemoryPoolReserve with the first argument as NULL hardcoded - which suggests that recognizing addrIn == nullptr as an invalid parameter is wrong.
The text was updated successfully, but these errors were encountered:
sceKernelMemoryPoolExpand
can easily run into undefined behavior due to dereference of std::map::end when out of memoryshadPS4/src/core/memory.cpp
Lines 68 to 84 in fe389e5
Some games can expect to run out of memory and take measures, but shadPS4 currently just runs into undefined behavior and crashes.
I think there's even more examples within that file so I think it should be slightly reworked to handled out of memory scenarios by returning ENOMEM
Furthermore, the following check is present on
sceKernelMemoryPoolReserve
:shadPS4/src/core/libraries/kernel/memory_management.cpp
Lines 382 to 389 in fe389e5
However, CUSA49295 calls
sceKernelMemoryPoolReserve
with the first argument as NULL hardcoded - which suggests that recognizingaddrIn == nullptr
as an invalid parameter is wrong.The text was updated successfully, but these errors were encountered: