Browse Source

Kernel: Fix assertion failure when ControlMemory is called with size=0

nce_cpp
Yuri Kunde Schlesner 10 years ago
parent
commit
990ff3f241
  1. 8
      src/core/hle/kernel/process.cpp

8
src/core/hle/kernel/process.cpp

@ -174,6 +174,10 @@ ResultCode Process::HeapFree(VAddr target, u32 size) {
return ERR_INVALID_ADDRESS; return ERR_INVALID_ADDRESS;
} }
if (size == 0) {
return RESULT_SUCCESS;
}
ResultCode result = vm_manager.UnmapRange(target, size); ResultCode result = vm_manager.UnmapRange(target, size);
if (result.IsError()) return result; if (result.IsError()) return result;
@ -226,6 +230,10 @@ ResultCode Process::LinearFree(VAddr target, u32 size) {
return ERR_INVALID_ADDRESS; return ERR_INVALID_ADDRESS;
} }
if (size == 0) {
return RESULT_SUCCESS;
}
VAddr heap_end = GetLinearHeapBase() + (u32)linheap_memory->size(); VAddr heap_end = GetLinearHeapBase() + (u32)linheap_memory->size();
if (target + size > heap_end) { if (target + size > heap_end) {
return ERR_INVALID_ADDRESS_STATE; return ERR_INVALID_ADDRESS_STATE;

Loading…
Cancel
Save