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

master
Yuri Kunde Schlesner 2015-08-26 06:38:26 +07:00
parent 687d973980
commit 12390eb155
1 changed files with 8 additions and 0 deletions

@ -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;