blob: 4b192c1fb4aa7684b7e57606713ca68690d77845 (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
--- procps-3.2.8/ps/output.c 2010-05-18 06:00:18.000000000 +0200
+++ procps-3.2.8.lennart/ps/output.c 2010-05-18 05:59:46.000000000 +0200
@@ -1109,7 +1109,7 @@
static int pr_cgroup(char *restrict const outbuf, const proc_t *restrict const pp){
char filename[48];
FILE *fd;
- int counter = 0;
+ int counter = 0, last_begin = 0, slash = 0;
int c;
int is_cgroup = 0;
@@ -1121,15 +1121,22 @@
if (is_cgroup == 0) {
if (c == ':') {
is_cgroup = 1;
+ slash = 0;
if (counter>0)
outbuf[counter++]=';';
}
}else
- if ((c == '\n') || (c == '\0'))
- is_cgroup = 0;
+ if ((c == '\n') || (c == '\0')){
+ if (slash) /* if the last char was a / this process is in the root cgroup which we should suppress */
+ counter = last_begin;
else
+ last_begin = counter;
+ is_cgroup = 0;
+ } else {
+ slash = c == '/';
outbuf[counter++]=c;
}
+ }
outbuf[counter]='\0';
close(fd);
if (counter>0)
|