summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2021-05-17 23:15:24 +0200
committerBenBE <BenBE@geshi.org>2021-05-23 09:22:21 +0200
commit7ef58f2dcf03edb2822c3d95991590bb429f36ab (patch)
treea353ce2f74ee68a66c8cbd4bb3875bb06d609024
parent2824e2989a9bb85d500d347abb082a27a243de3c (diff)
Drop mc->maxLen field
-rw-r--r--Process.c7
-rw-r--r--Process.h1
-rw-r--r--linux/LinuxProcessList.c3
3 files changed, 6 insertions, 5 deletions
diff --git a/Process.c b/Process.c
index 0eba1215..c2a2ed17 100644
--- a/Process.c
+++ b/Process.c
@@ -425,7 +425,12 @@ void Process_makeCommandStr(Process *this) {
if (mc->cmdlineChanged || mc->commChanged || mc->exeChanged) {
free(mc->str);
/* Accommodate the column text, two field separators and terminating NUL */
- mc->str = xCalloc(1, mc->maxLen + 2 * SEPARATOR_LEN + 1);
+ size_t maxLen = 2 * SEPARATOR_LEN + 1;
+ maxLen += this->cmdline ? strlen(this->cmdline) : strlen("(zombie)");
+ maxLen += this->procComm ? strlen(this->procComm) : 0;
+ maxLen += this->procExe ? strlen(this->procExe) : 0;
+
+ mc->str = xCalloc(1, maxLen);
}
/* Preserve the settings used in this run */
diff --git a/Process.h b/Process.h
index 9aa04b3e..0b2f198d 100644
--- a/Process.h
+++ b/Process.h
@@ -72,7 +72,6 @@ typedef struct ProcessCmdlineHighlight_ {
* threads and zombies */
typedef struct ProcessMergedCommand_ {
char *str; /* merged Command string */
- size_t maxLen; /* maximum expected length of Command string */
size_t highlightCount; /* how many portions of cmdline to highlight */
ProcessCmdlineHighlight highlights[8]; /* which portions of cmdline to highlight */
bool separateComm : 1; /* whether comm is a separate field */
diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c
index 0977bee8..8f794a18 100644
--- a/linux/LinuxProcessList.c
+++ b/linux/LinuxProcessList.c
@@ -1131,7 +1131,6 @@ static bool LinuxProcessList_readCmdlineFile(Process* process, openat_arg_t proc
}
ProcessMergedCommand *mc = &process->mergedCommand;
- mc->maxLen = lastChar + 1; /* accommodate cmdline */
if (!process->cmdline || !String_eq(command, process->cmdline)) {
free_and_xStrdup(&process->cmdline, command);
process->cmdlineBasenameStart = tokenStart;
@@ -1142,7 +1141,6 @@ static bool LinuxProcessList_readCmdlineFile(Process* process, openat_arg_t proc
/* /proc/[pid]/comm could change, so should be updated */
if ((amtRead = xReadfileat(procFd, "comm", command, sizeof(command))) > 0) {
command[amtRead - 1] = '\0';
- mc->maxLen += amtRead - 1; /* accommodate comm */
if (!process->procComm || !String_eq(command, process->procComm)) {
free_and_xStrdup(&process->procComm, command);
mc->commChanged = true;
@@ -1165,7 +1163,6 @@ static bool LinuxProcessList_readCmdlineFile(Process* process, openat_arg_t proc
#endif
if (amtRead > 0) {
filename[amtRead] = 0;
- mc->maxLen += amtRead; /* accommodate exe */
if (!process->procExe ||
(!process->procExeDeleted && !String_eq(filename, process->procExe)) ||
(process->procExeDeleted && !String_startsWith(filename, process->procExe))) {

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