diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2011-08-29 20:45:29 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2011-08-29 20:45:29 +0000 |
commit | 27b470e10d0ed2095e9e132193a6ae1ecff918bf (patch) | |
tree | a59fbabb080146532c6496bc36238dca271f342e /ProcessList.c | |
parent | 5dfb46e14f1f31bb4354be91590c90a91a6b3a34 (diff) |
Don't simply trust that string splits were successful...
Diffstat (limited to 'ProcessList.c')
-rw-r--r-- | ProcessList.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ProcessList.c b/ProcessList.c index aa5f8678..2a01d8e1 100644 --- a/ProcessList.c +++ b/ProcessList.c @@ -475,10 +475,14 @@ static void ProcessList_readCGroupFile(Process* process, const char* dirname, co char *ok = fgets(buffer, 255, file); if (ok) { char* trimmed = String_trim(buffer); - char** fields = String_split(trimmed, ':'); + int nFields; + char** fields = String_split(trimmed, ':', &nFields); free(trimmed); - - process->cgroup = strndup(fields[2] + 1, 10); + if (nFields >= 3) { + process->cgroup = strndup(fields[2] + 1, 10); + } else { + process->cgroup = strdup(""); + } String_freeArray(fields); } fclose(file); |