From aadeef6a7cb07285d3eec0d2537a42bf0d6ea98b Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Thu, 11 Feb 2021 20:36:37 +0100 Subject: [PATCH] Fix psctl(2) not setting uid, euid, gid, and egid. --- kernel/psctl.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/psctl.cpp b/kernel/psctl.cpp index f6ff0006..f87870a2 100644 --- a/kernel/psctl.cpp +++ b/kernel/psctl.cpp @@ -115,6 +115,12 @@ int sys_psctl(pid_t pid, int request, void* ptr) psst.init_prev = ptable->Prev(pid); psst.init_next = ptable->Next(pid); psst.init_first = pid == 1 ? 1 : -1; + kthread_mutex_lock(&process->idlock); + psst.uid = process->uid; + psst.euid = process->euid; + psst.gid = process->gid; + psst.egid = process->egid; + kthread_mutex_unlock(&process->idlock); kthread_mutex_lock(&process->threadlock); psst.status = process->exit_code; kthread_mutex_unlock(&process->threadlock);