diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2014-04-09 17:43:54 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2014-04-09 17:43:54 -0300 |
commit | cb297af8487daae6a6f552d17b13d29912882584 (patch) | |
tree | 14c3c826a0789e891ed6376a84dee6b4f1e9025a /ProcessList.c | |
parent | f2e4556b5ec51a714cb94bf5ceee729e3c542b6d (diff) |
Fix invalid access when highlighting basename of threads.
Diffstat (limited to 'ProcessList.c')
-rw-r--r-- | ProcessList.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ProcessList.c b/ProcessList.c index 850715e8..813b9775 100644 --- a/ProcessList.c +++ b/ProcessList.c @@ -708,10 +708,10 @@ static bool ProcessList_readCmdlineFile(Process* process, const char* dirname, c if (tokenEnd == 0) { tokenEnd = amtRead; } - process->basenameOffset = tokenEnd; command[amtRead] = '\0'; free(process->comm); process->comm = strdup(command); + process->basenameOffset = tokenEnd; return true; } @@ -831,10 +831,12 @@ static bool ProcessList_processEntries(ProcessList* this, const char* dirname, P if (process->state == 'Z') { free(process->comm); + process->basenameOffset = -1; process->comm = strdup(command); } else if (Process_isThread(process)) { if (this->showThreadNames || Process_isKernelThread(process) || process->state == 'Z') { free(process->comm); + process->basenameOffset = -1; process->comm = strdup(command); } else if (this->showingThreadNames) { if (! ProcessList_readCmdlineFile(process, dirname, name)) @@ -858,6 +860,7 @@ static bool ProcessList_processEntries(ProcessList* this, const char* dirname, P errorReadingProcess: { if (process->comm) { free(process->comm); + process->basenameOffset = -1; process->comm = NULL; } if (existingProcess) |