From fa65c30976386460d1361950ecce63e81dfb1bea Mon Sep 17 00:00:00 2001 From: fraggerfox Date: Tue, 27 Apr 2021 17:19:35 +0530 Subject: [PATCH] Sets a non-NULL process state in case of kvm_getlwps(3) returns NULL. Thanks @cgzone. --- netbsd/NetBSDProcessList.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/netbsd/NetBSDProcessList.c b/netbsd/NetBSDProcessList.c index cfc00d53..91be9549 100644 --- a/netbsd/NetBSDProcessList.c +++ b/netbsd/NetBSDProcessList.c @@ -212,21 +212,24 @@ static void NetBSDProcessList_scanProcs(NetBSDProcessList* this) { switch (kproc->p_realstat) { case SIDL: proc->state = 'I'; break; case SACTIVE: - // We only consider the first LWP with a one of the below states. - for (int j = 0; j < nlwps; j++) { - if (klwps) { - switch (klwps[j].l_stat) { - case LSONPROC: proc->state = 'P'; break; - case LSRUN: proc->state = 'R'; break; - case LSSLEEP: proc->state = 'S'; break; - case LSSTOP: proc->state = 'T'; break; - default: proc->state = '?'; + // We only consider the first LWP with a one of the below states. + for (int j = 0; j < nlwps; j++) { + if (klwps) { + switch (klwps[j].l_stat) { + case LSONPROC: proc->state = 'P'; break; + case LSRUN: proc->state = 'R'; break; + case LSSLEEP: proc->state = 'S'; break; + case LSSTOP: proc->state = 'T'; break; + default: proc->state = '?'; + } + if (proc->state != '?') + break; + } else { + proc->state = '?'; + break; } - if (proc->state != '?') - break; - } - } - break; + } + break; case SSTOP: proc->state = 'T'; break; case SZOMB: proc->state = 'Z'; break; case SDEAD: proc->state = 'D'; break;