Commit a4b03e88 authored by Hisham Muhammad's avatar Hisham Muhammad
Browse files

Improve reading of cgroups.

parent 39a725ab
...@@ -312,22 +312,27 @@ static void LinuxProcessList_readCGroupFile(Process* process, const char* dirnam ...@@ -312,22 +312,27 @@ static void LinuxProcessList_readCGroupFile(Process* process, const char* dirnam
process->cgroup = strdup(""); process->cgroup = strdup("");
return; return;
} }
char output[256];
output[0] = '\0';
char* at = output;
int left = 255;
while (!feof(file) && left > 0) {
char buffer[256]; char buffer[256];
char *ok = fgets(buffer, 255, file); char *ok = fgets(buffer, 255, file);
if (ok) { if (!ok) break;
char* trimmed = String_trim(buffer); char* group = strchr(buffer, ':');
int nFields; if (!group) break;
char** fields = String_split(trimmed, ':', &nFields); if (at != output) {
free(trimmed); *at = ';';
free(process->cgroup); at++;
if (nFields >= 3) { left--;
process->cgroup = strndup(fields[2] + 1, 10);
} else {
process->cgroup = strdup("");
} }
String_freeArray(fields); int wrote = snprintf(at, left, "%s", group);
left -= wrote;
} }
fclose(file); fclose(file);
free(process->cgroup);
process->cgroup = strdup(output);
} }
#endif #endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment