summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2024-01-27 23:22:31 +0100
committerBenBE <BenBE@geshi.org>2024-01-28 00:01:37 +0100
commit32cb30273b9785ba2dd2cada5d0a677f97db7ec0 (patch)
tree6b5c7559ad1700b6536bba0843f0884b87212b77
parentea30b98b8621de82f44d546e20be9b8b4ada34a7 (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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Process.c b/Process.c
index 1497503f..9179c0ea 100644
--- a/Process.c
+++ b/Process.c
@@ -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;
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy