diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c index bef648a9..9dd3b93d 100644 --- a/linux/LinuxProcess.c +++ b/linux/LinuxProcess.c @@ -251,7 +251,7 @@ void LinuxProcess_writeField(Process* this, RichString* str, ProcessField field) case VXID: xSnprintf(buffer, n, "%5u ", lp->vxid); break; #endif #ifdef HAVE_CGROUP - case CGROUP: xSnprintf(buffer, n, "%-10s ", lp->cgroup); break; + case CGROUP: xSnprintf(buffer, n, "%-10s ", lp->cgroup ? lp->cgroup : ""); break; #endif case OOM: xSnprintf(buffer, n, "%4u ", lp->oom); break; case IO_PRIORITY: { diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c index a02509fc..55879236 100644 --- a/linux/LinuxProcessList.c +++ b/linux/LinuxProcessList.c @@ -509,7 +509,10 @@ static void LinuxProcessList_readCGroupFile(LinuxProcess* process, const char* d xSnprintf(filename, MAX_NAME, "%s/%s/cgroup", dirname, name); FILE* file = fopen(filename, "r"); if (!file) { - process->cgroup = xStrdup(""); + if (process->cgroup) { + free(process->cgroup); + process->cgroup = NULL; + } return; } char output[PROC_LINE_LENGTH + 1];