diff options
author | ToMe25 <ToMe25@gmx.de> | 2022-12-01 22:02:07 +0100 |
---|---|---|
committer | ToMe25 <ToMe25@gmx.de> | 2022-12-01 22:02:07 +0100 |
commit | 66721198b640a241c2c666e0f628a665b4bf8c23 (patch) | |
tree | 1ab0ff7e7fb58c52c5eca762b23377dd361d055a | |
parent | 507809b648634c6251e9aeeb8ffae1d38c5be5f7 (diff) | |
download | libgtop-66721198b640a241c2c666e0f628a665b4bf8c23.tar.gz |
Don't try to read System process procargs
-rw-r--r-- | sysdeps/openbsd/procargs.c | 5 | ||||
-rw-r--r-- | sysdeps/openbsd/procmap.c | 1 |
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); } |