diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2024-01-27 23:22:31 +0100 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2024-01-28 00:01:37 +0100 |
commit | 32cb30273b9785ba2dd2cada5d0a677f97db7ec0 (patch) | |
tree | 6b5c7559ad1700b6536bba0843f0884b87212b77 | |
parent | ea30b98b8621de82f44d546e20be9b8b4ada34a7 (diff) |
Disable basename matching for kernel threads
Kernel threads are commonly not based on an executable and their cmdline
therefore just a human readable string.
On Linux this string might contain slashes, e.g. kworker/7:5H-ttm, which
cause Process_writeCommand() to print only the trailing parts if the
option *Show Program Path* is disabled.
Reported-and-Suggested-By: mmrmaximuzz
Fixes: #1391
-rw-r--r-- | Process.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -1038,8 +1038,14 @@ void Process_updateCmdline(Process* this, const char* cmdline, int basenameStart free(this->cmdline); this->cmdline = cmdline ? xStrdup(cmdline) : NULL; - this->cmdlineBasenameStart = (basenameStart || !cmdline) ? basenameStart : skipPotentialPath(cmdline, basenameEnd); - this->cmdlineBasenameEnd = basenameEnd; + if (Process_isKernelThread(this)) { + /* kernel threads have no basename */ + this->cmdlineBasenameStart = 0; + this->cmdlineBasenameEnd = 0; + } else { + this->cmdlineBasenameStart = (basenameStart || !cmdline) ? basenameStart : skipPotentialPath(cmdline, basenameEnd); + this->cmdlineBasenameEnd = basenameEnd; + } this->mergedCommand.lastUpdate = 0; } |