Kernel: Fix assertion failure when ControlMemory is called with size=0
This commit is contained in:
parent
687d973980
commit
12390eb155
|
@ -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;
|
||||||
|
|
Reference in New Issue