procstat binary: do not skip pid if either path or osrel sysctls failed

PR:	295893
Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D57493
This commit is contained in:
Konstantin Belousov
2026-06-07 10:28:29 +03:00
parent 888d9236e2
commit 9f378397ee
+5 -3
View File
@@ -35,6 +35,7 @@
#include <errno.h>
#include <libprocstat.h>
#include <limits.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
@@ -50,12 +51,13 @@ procstat_bin(struct procstat *prstat, struct kinfo_proc *kipp)
xo_emit("{T:/%5s %-16s %8s %s}\n", "PID", "COMM", "OSREL",
"PATH");
if (procstat_getpathname(prstat, kipp, pathname, sizeof(pathname)) != 0)
if (kill(kipp->ki_pid, 0) == -1)
return;
if (strlen(pathname) == 0)
if (procstat_getpathname(prstat, kipp, pathname, sizeof(pathname))
!= 0 || strlen(pathname) == 0)
strcpy(pathname, "-");
if (procstat_getosrel(prstat, kipp, &osrel) != 0)
return;
osrel = -1;
xo_emit("{k:process_id/%5d/%d} ", kipp->ki_pid);
xo_emit("{:command/%-16s/%s} ", kipp->ki_comm);