[CRIU] [PATCH 1/2] cgroup: don't overwrite the offset value in a loop (v2)

Tycho Andersen tycho.andersen at canonical.com
Fri Aug 15 05:35:01 PDT 2014


On Fri, Aug 15, 2014 at 04:24:24PM +0400, Andrew Vagin wrote:
> 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>

Acked-by: 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