diff options
Diffstat (limited to 'Process.c')
-rw-r--r-- | Process.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -522,11 +522,10 @@ void Process_toggleTag(Process* this) { } bool Process_setPriority(Process* this, int priority) { - uid_t euid = geteuid(); - (void) seteuid(getuid()); + CRT_dropPrivileges(); int old_prio = getpriority(PRIO_PROCESS, this->pid); int err = setpriority(PRIO_PROCESS, this->pid, priority); - (void) seteuid(euid); + CRT_restorePrivileges(); if (err == 0 && old_prio != getpriority(PRIO_PROCESS, this->pid)) { this->nice = priority; } @@ -538,10 +537,9 @@ bool Process_changePriorityBy(Process* this, size_t delta) { } void Process_sendSignal(Process* this, size_t sgn) { - uid_t euid = geteuid(); - (void) seteuid(getuid()); + CRT_dropPrivileges(); kill(this->pid, (int) sgn); - (void) seteuid(euid); + CRT_restorePrivileges(); } long Process_pidCompare(const void* v1, const void* v2) { |