[CRIU] [PATCH] cgroup: don't overwrite the offset value in a loop

Andrew Vagin avagin at openvz.org
Fri Aug 15 05:03:07 PDT 2014


prepare_cgroup_dirs() gets a path and an offset.
Then we add substrings to the source string and handle them.

Cc: Tycho Andersen <tycho.andersen at canonical.com>
Signed-off-by: Andrew Vagin <avagin at openvz.org>
---
 cgroup.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/cgroup.c b/cgroup.c
index 1d297e6..e277657 100644
--- a/cgroup.c
+++ b/cgroup.c
@@ -1023,9 +1023,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 +1048,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