summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToMe25 <ToMe25@gmx.de>2022-12-01 22:02:07 +0100
committerToMe25 <ToMe25@gmx.de>2022-12-01 22:02:07 +0100
commit66721198b640a241c2c666e0f628a665b4bf8c23 (patch)
tree1ab0ff7e7fb58c52c5eca762b23377dd361d055a
parent507809b648634c6251e9aeeb8ffae1d38c5be5f7 (diff)
downloadlibgtop-66721198b640a241c2c666e0f628a665b4bf8c23.tar.gz
Don't try to read System process procargs
-rw-r--r--sysdeps/openbsd/procargs.c5
-rw-r--r--sysdeps/openbsd/procmap.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/openbsd/procargs.c b/sysdeps/openbsd/procargs.c
index c686bd35..3a3e68ab 100644
--- a/sysdeps/openbsd/procargs.c
+++ b/sysdeps/openbsd/procargs.c
@@ -70,6 +70,11 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
return NULL;
}
+ if (pinfo[0].p_flag & P_SYSTEM) {
+ glibtop_suid_leave (server);
+ return NULL;
+ }
+
args = kvm_getargv (server->machine->kd, pinfo, max_len);
if (args == NULL) {
glibtop_suid_leave (server);
diff --git a/sysdeps/openbsd/procmap.c b/sysdeps/openbsd/procmap.c
index 7729f31a..c6537f9a 100644
--- a/sysdeps/openbsd/procmap.c
+++ b/sysdeps/openbsd/procmap.c
@@ -200,6 +200,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
pinfo = kvm_getprocs (server->machine->kd, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), &count);
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
+ glibtop_suid_leave (server);
return (glibtop_map_entry*) g_array_free(maps, TRUE);
}