summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2020-12-21 22:35:38 +0100
committerBenny Baumann <BenBE@geshi.org>2020-12-21 22:35:38 +0100
commit6502b026664a8a53fceff16f52981b43fe73cd2b (patch)
treecd4484a1d7ffaa59ecf3b8023ca7d853a68f2c0f
parent10c6810bffb6f0107b9a436327524f8379f75cec (diff)
DiD: Ensure string offsets are inside string boundaries
-rw-r--r--linux/LinuxProcess.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c
index 073cd649..802e7225 100644
--- a/linux/LinuxProcess.c
+++ b/linux/LinuxProcess.c
@@ -376,6 +376,9 @@ void LinuxProcess_makeCommandStr(Process* this) {
cmdline = "(zombie)";
}
+ assert(cmdlineBasenameOffset >= 0);
+ assert(cmdlineBasenameOffset <= strlen(cmdline));
+
if (!showMergedCommand || !procExe || !procComm) { /* fall back to cmdline */
if (showMergedCommand && !procExe && procComm && strlen(procComm)) { /* Prefix column with comm */
if (strncmp(cmdline + cmdlineBasenameOffset, procComm, MINIMUM(TASK_COMM_LEN - 1, strlen(procComm))) != 0) {
@@ -411,6 +414,9 @@ void LinuxProcess_makeCommandStr(Process* this) {
int exeBasenameOffset = lp->procExeBasenameOffset;
int exeBasenameLen = exeLen - exeBasenameOffset;
+ assert(exeBasenameOffset >= 0);
+ assert(exeBasenameOffset <= strlen(procExe));
+
/* Start with copying exe */
if (showProgramPath) {
str = stpcpy(str, procExe);

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