X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvserver-stat.c;h=a444d9976054d442dcb23536367563782219f720;hb=775dc2bae5da1fa8ca7d1eead70e9c294ee7a23e;hp=269edb0c4faf3aee7aa02dd2c30cbfbada8a4553;hpb=83fd153555610839df8100ac8f67d1ac294e9054;p=util-vserver.git diff --git a/src/vserver-stat.c b/src/vserver-stat.c index 269edb0..a444d99 100644 --- a/src/vserver-stat.c +++ b/src/vserver-stat.c @@ -341,10 +341,14 @@ registerXidCgroups(struct Vector *vec, struct process_info *process) perror("read(cgroup/mnt)"); return; } - close(fd); - cgroup[cgroup_len] = '/'; - cgroup_len += 1; - cgroup[cgroup_len] = 0; + if (cgroup_len > 0) { + close(fd); + while (cgroup[cgroup_len - 1] == '\n' || cgroup[cgroup_len - 1] == '\r') + cgroup_len--; + cgroup[cgroup_len] = '/'; + cgroup_len += 1; + cgroup[cgroup_len] = 0; + } } if ((fd = open(DEFAULTCONFDIR "/cgroup/base", O_RDONLY)) != -1) { @@ -354,12 +358,16 @@ registerXidCgroups(struct Vector *vec, struct process_info *process) return; } close(fd); - cgroup_len += len; - if (cgroup[cgroup_len - 1] != '/') { - cgroup[cgroup_len] = '/'; - cgroup_len += 1; + if (len > 0) { + while (cgroup[cgroup_len + len - 1] == '\n' || cgroup[cgroup_len + len - 1] == '\r') + len--; + cgroup_len += len; + if (cgroup[cgroup_len - 1] != '/') { + cgroup[cgroup_len] = '/'; + cgroup_len += 1; + } + cgroup[cgroup_len] = 0; } - cgroup[cgroup_len] = 0; } len = strlen(vhi_name);