diff options
author | BenBE <BenBE@geshi.org> | 2021-06-18 12:53:23 +0200 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2021-06-26 12:18:37 +0200 |
commit | 3bed682b1e5947b27ec2c609c61dd4c9bd4268ad (patch) | |
tree | 1fc44e332dfc14adf15699a4f0edba414f8a6338 /netbsd | |
parent | 686309e34cacd9e49574c4dab0480e5c75c8e5da (diff) |
Always update `proc->st_uid` + `proc->user`
Avoids issue #661.
Diffstat (limited to 'netbsd')
-rw-r--r-- | netbsd/NetBSDProcessList.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/netbsd/NetBSDProcessList.c b/netbsd/NetBSDProcessList.c index ea6c8d3e..c3b5e004 100644 --- a/netbsd/NetBSDProcessList.c +++ b/netbsd/NetBSDProcessList.c @@ -236,10 +236,8 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) { proc->pgrp = kproc->p__pgid; proc->isKernelThread = proc->pgrp == 0; proc->isUserlandThread = proc->pid != proc->tgid; - proc->st_uid = kproc->p_uid; proc->starttime_ctime = kproc->p_ustart_sec; Process_fillStarttimeBuffer(proc); - proc->user = UsersTable_getRef(this->super.usersTable, proc->st_uid); ProcessList_add(&this->super, proc); NetBSDProcessList_updateExe(kproc, proc); @@ -254,6 +252,11 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) { NetBSDProcessList_updateCwd(kproc, proc); } + if (proc->st_uid != kproc->p_uid) { + proc->st_uid = kproc->p_uid; + proc->user = UsersTable_getRef(this->super.usersTable, proc->st_uid); + } + proc->m_virt = kproc->p_vm_vsize; proc->m_resident = kproc->p_vm_rssize; proc->percent_mem = (proc->m_resident * pageSizeKB) / (double)(this->super.totalMem) * 100.0; |