Kernel: Return EFAULT when the kernel believes the wstatus pointer is invalid

This commit is contained in:
apio 2022-10-20 08:20:56 +02:00
parent 44bd93b8b4
commit cd9ecc1746

View File

@ -490,7 +490,13 @@ void sys_waitpid(Context* context, long pid, int* wstatus,
*kwstatus = (int)(child->exit_status & 0xff);
release_user_ref(kwstatus);
}
else { kinfoln("wstatus ptr is invalid: %p", (void*)wstatus); }
else
{
kinfoln("wstatus ptr is invalid: %p", (void*)wstatus);
child->state = child->Exited;
context->rax = -EFAULT;
return;
}
}
child->state = child->Exited;
context->rax = (long)child->id;