From 6502b026664a8a53fceff16f52981b43fe73cd2b Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Mon, 21 Dec 2020 22:35:38 +0100 Subject: DiD: Ensure string offsets are inside string boundaries --- linux/LinuxProcess.c | 6 ++++++ 1 file changed, 6 insertions(+) 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); -- cgit v1.2.3