Skip to content

Commit

Permalink
fix: don't mangle memory for zombie processes
Browse files Browse the repository at this point in the history
for a zombie process, `proc_pidpath` returns 0, and nothing is written in fullname, so it's uninitialized garbage
  • Loading branch information
joske committed Feb 2, 2024
1 parent edcb68c commit 2b09f29
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/osx/btop_collect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1212,10 +1212,14 @@ namespace Proc {
//? Get program name, command, username, parent pid, nice and status
if (no_cache) {
char fullname[PROC_PIDPATHINFO_MAXSIZE];
proc_pidpath(pid, fullname, sizeof(fullname));
const string f_name = std::string(fullname);
size_t lastSlash = f_name.find_last_of('/');
new_proc.name = f_name.substr(lastSlash + 1);
int rc = proc_pidpath(pid, fullname, sizeof(fullname));
string f_name = "<defunct>";
if (rc != 0) {
f_name = std::string(fullname);
size_t lastSlash = f_name.find_last_of('/');
f_name = f_name.substr(lastSlash + 1);
}
new_proc.name = f_name;
//? Get process arguments if possible, fallback to process path in case of failure
if (Shared::arg_max > 0) {
std::unique_ptr<char[]> proc_chars(new char[Shared::arg_max]);
Expand Down

0 comments on commit 2b09f29

Please sign in to comment.