mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Fix tfork(2) not copying signal properties.
This commit is contained in:
parent
741e48e688
commit
6558de636e
1 changed files with 14 additions and 8 deletions
|
@ -670,6 +670,20 @@ Process* Process::Fork()
|
|||
clone->cwd = cwd;
|
||||
kthread_mutex_unlock(&ptrlock);
|
||||
|
||||
kthread_mutex_lock(&idlock);
|
||||
clone->uid = uid;
|
||||
clone->gid = gid;
|
||||
clone->euid = euid;
|
||||
clone->egid = egid;
|
||||
clone->umask = umask;
|
||||
kthread_mutex_unlock(&idlock);
|
||||
|
||||
kthread_mutex_lock(&signal_lock);
|
||||
memcpy(&clone->signal_actions, &signal_actions, sizeof(signal_actions));
|
||||
sigemptyset(&clone->signal_pending);
|
||||
clone->sigreturn = sigreturn;
|
||||
kthread_mutex_unlock(&signal_lock);
|
||||
|
||||
// Initialize things that can fail and abort if needed.
|
||||
bool failure = false;
|
||||
|
||||
|
@ -681,14 +695,6 @@ Process* Process::Fork()
|
|||
clone->mtable = mtable;
|
||||
kthread_mutex_unlock(&ptrlock);
|
||||
|
||||
kthread_mutex_lock(&idlock);
|
||||
clone->uid = uid;
|
||||
clone->gid = gid;
|
||||
clone->euid = euid;
|
||||
clone->egid = egid;
|
||||
clone->umask = umask;
|
||||
kthread_mutex_unlock(&idlock);
|
||||
|
||||
if ( !(clone->program_image_path = String::Clone(program_image_path)) )
|
||||
failure = false;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue