[CRIU] [PATCH 1/2] cgroup: don't overwrite the offset value in a loop (v2)
Andrew Vagin
avagin at openvz.org
Fri Aug 15 05:24:24 PDT 2014
prepare_cgroup_dirs() gets a path and an offset.
Then we add substrings to the source string and handle them.
v2: fix one more place in prepare_cgroup_dir_properties()
Cc: Tycho Andersen <tycho.andersen at canonical.com>
Signed-off-by: Andrew Vagin <avagin at openvz.org>
---
cgroup.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/cgroup.c b/cgroup.c
index 1d297e6..5633b64 100644
--- a/cgroup.c
+++ b/cgroup.c
@@ -975,8 +975,9 @@ static int prepare_cgroup_dir_properties(char *path, int off, CgroupDirEntry **e
for (i = 0; i < n_ents; i++) {
CgroupDirEntry *e = ents[i];
+ size_t off2 = off;
- off += sprintf(path + off, "/%s", e->dir_name);
+ off2 += sprintf(path + off, "/%s", e->dir_name);
/*
* Check to see if we made e->properties NULL during restore
* because directory already existed and as such we don't want to
@@ -989,7 +990,7 @@ static int prepare_cgroup_dir_properties(char *path, int off, CgroupDirEntry **e
}
}
- if (prepare_cgroup_dir_properties(path, off, e->children, e->n_children) < 0)
+ if (prepare_cgroup_dir_properties(path, off2, e->children, e->n_children) < 0)
return -1;
}
@@ -1023,9 +1024,10 @@ static int prepare_cgroup_dirs(char *paux, size_t off, CgroupDirEntry **ents, si
CgroupDirEntry *e;
for (i = 0; i < n_ents; i++) {
+ size_t off2 = off;
e = ents[i];
- off += sprintf(paux + off, "/%s", e->dir_name);
+ off2 += sprintf(paux + off, "/%s", e->dir_name);
/*
* Checking to see if file already exists. If not, create it. If
@@ -1047,7 +1049,7 @@ static int prepare_cgroup_dirs(char *paux, size_t off, CgroupDirEntry **ents, si
pr_info("Determined dir %s already existed\n", paux);
}
- if (prepare_cgroup_dirs(paux, off, e->children, e->n_children) < 0)
+ if (prepare_cgroup_dirs(paux, off2, e->children, e->n_children) < 0)
return -1;
}
--
1.9.3
More information about the CRIU
mailing list