summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2020-12-21 22:29:18 +0100
committerBenny Baumann <BenBE@geshi.org>2020-12-21 22:29:18 +0100
commit10c6810bffb6f0107b9a436327524f8379f75cec (patch)
tree79db76b42c820842cbd93d3672d278a41b943d84
parent068561351f6267eb505b1d3a956358111c28a289 (diff)
Avoid NULL dereference on zombie processes
Fixes #361
-rw-r--r--linux/LinuxProcess.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c
index 18679ff7..073cd649 100644
--- a/linux/LinuxProcess.c
+++ b/linux/LinuxProcess.c
@@ -368,6 +368,13 @@ void LinuxProcess_makeCommandStr(Process* this) {
char *str = strStart;
int cmdlineBasenameOffset = lp->procCmdlineBasenameOffset;
+ int cmdlineBasenameEnd = lp->procCmdlineBasenameEnd;
+
+ if (!cmdline) {
+ cmdlineBasenameOffset = 0;
+ cmdlineBasenameEnd = 0;
+ cmdline = "(zombie)";
+ }
if (!showMergedCommand || !procExe || !procComm) { /* fall back to cmdline */
if (showMergedCommand && !procExe && procComm && strlen(procComm)) { /* Prefix column with comm */
@@ -385,11 +392,11 @@ void LinuxProcess_makeCommandStr(Process* this) {
if (showProgramPath) {
(void) stpcpyWithNewlineConversion(str, cmdline);
mc->baseStart = cmdlineBasenameOffset;
- mc->baseEnd = lp->procCmdlineBasenameEnd;
+ mc->baseEnd = cmdlineBasenameEnd;
} else {
(void) stpcpyWithNewlineConversion(str, cmdline + cmdlineBasenameOffset);
mc->baseStart = 0;
- mc->baseEnd = lp->procCmdlineBasenameEnd - cmdlineBasenameOffset;
+ mc->baseEnd = cmdlineBasenameEnd - cmdlineBasenameOffset;
}
if (mc->sep1) {

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