mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 15:48:12 +00:00
Kernel: Update process promise states on execve() and fork()
We now move the execpromises state into the regular promises, and clear the execpromises state. Also make sure to duplicate the promise state on fork. This fixes an issue where "su" would launch a shell which immediately crashed due to not having pledged "stdio".
This commit is contained in:
parent
1e25d2b734
commit
c7858622ec
4 changed files with 10 additions and 1 deletions
|
@ -84,7 +84,9 @@ int Process::sys$pledge(Userspace<const Syscall::SC_pledge_params*> user_params)
|
|||
return -EPERM;
|
||||
}
|
||||
|
||||
m_has_promises = true;
|
||||
m_has_promises = m_has_promises || !promises.is_null();
|
||||
m_has_execpromises = m_has_execpromises || !execpromises.is_null();
|
||||
|
||||
m_promises = new_promises;
|
||||
m_execpromises = new_execpromises;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue