[lxc-devel] [PATCH] call lxc_container_put when appropriate

Serge Hallyn serge.hallyn at ubuntu.com
Fri Oct 4 13:43:06 UTC 2013


Quoting S.Çağlar Onur (caglar at 10ur.org):
> Signed-off-by: S.Çağlar Onur <caglar at 10ur.org>

I'm torn on that.  It's "correct", so doing so shows users what
they should do.  OTOH these are programs, not libraries, and will
immediately be exiting, so it's not actually necessary.

Setting a good example is worthwhile though, so

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  src/lxc/lxc_cgroup.c   | 1 +
>  src/lxc/lxc_clone.c    | 1 +
>  src/lxc/lxc_console.c  | 4 ++++
>  src/lxc/lxc_destroy.c  | 1 +
>  src/lxc/lxc_freeze.c   | 1 +
>  src/lxc/lxc_info.c     | 2 ++
>  src/lxc/lxc_snapshot.c | 1 +
>  src/lxc/lxc_unfreeze.c | 1 +
>  src/lxc/lxc_wait.c     | 1 +
>  9 files changed, 13 insertions(+)
> 
> diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c
> index b9727a0..7c26fc6 100644
> --- a/src/lxc/lxc_cgroup.c
> +++ b/src/lxc/lxc_cgroup.c
> @@ -85,6 +85,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		ERROR("Insufficent privileges to control %s:%s", my_args.lxcpath[0], my_args.name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> diff --git a/src/lxc/lxc_clone.c b/src/lxc/lxc_clone.c
> index e01c98b..4639a90 100644
> --- a/src/lxc/lxc_clone.c
> +++ b/src/lxc/lxc_clone.c
> @@ -163,6 +163,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c1->may_control(c1)) {
>  		fprintf(stderr, "Insufficent privileges to control %s\n", orig);
> +		lxc_container_put(c1);
>  		return -1;
>  	}
>  
> diff --git a/src/lxc/lxc_console.c b/src/lxc/lxc_console.c
> index f5d16fa..5dc3d49 100644
> --- a/src/lxc/lxc_console.c
> +++ b/src/lxc/lxc_console.c
> @@ -113,17 +113,21 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		fprintf(stderr, "Insufficent privileges to control %s\n", my_args.name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
>  	if (!c->is_running(c)) {
>  		fprintf(stderr, "%s is not running\n", my_args.name);
> +		lxc_container_put(c);
>  		exit(EXIT_FAILURE);
>  	}
>  
>  	ret = c->console(c, my_args.ttynum, 0, 1, 2, my_args.escape);
>  	if (ret < 0) {
> +		lxc_container_put(c);
>  		exit(EXIT_FAILURE);
>  	}
> +	lxc_container_put(c);
>  	return EXIT_SUCCESS;
>  }
> diff --git a/src/lxc/lxc_destroy.c b/src/lxc/lxc_destroy.c
> index d50fcf1..9983241 100644
> --- a/src/lxc/lxc_destroy.c
> +++ b/src/lxc/lxc_destroy.c
> @@ -89,6 +89,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		fprintf(stderr, "Insufficent privileges to control %s\n", my_args.name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> diff --git a/src/lxc/lxc_freeze.c b/src/lxc/lxc_freeze.c
> index 92d7aa2..9e783bd 100644
> --- a/src/lxc/lxc_freeze.c
> +++ b/src/lxc/lxc_freeze.c
> @@ -74,6 +74,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		ERROR("Insufficent privileges to control %s:%s", my_args.lxcpath[0], my_args.name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> diff --git a/src/lxc/lxc_info.c b/src/lxc/lxc_info.c
> index ac56287..aeaf9a8 100644
> --- a/src/lxc/lxc_info.c
> +++ b/src/lxc/lxc_info.c
> @@ -109,6 +109,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		fprintf(stderr, "Insufficent privileges to control %s\n", c->name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> @@ -160,5 +161,6 @@ int main(int argc, char *argv[])
>  		}
>  	}
>  
> +	lxc_container_put(c);
>  	return 0;
>  }
> diff --git a/src/lxc/lxc_snapshot.c b/src/lxc/lxc_snapshot.c
> index 573804b..68e051d 100644
> --- a/src/lxc/lxc_snapshot.c
> +++ b/src/lxc/lxc_snapshot.c
> @@ -189,6 +189,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		fprintf(stderr, "Insufficent privileges to control %s\n", my_args.name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> diff --git a/src/lxc/lxc_unfreeze.c b/src/lxc/lxc_unfreeze.c
> index 4c499ec..e5def1a 100644
> --- a/src/lxc/lxc_unfreeze.c
> +++ b/src/lxc/lxc_unfreeze.c
> @@ -73,6 +73,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		ERROR("Insufficent privileges to control %s:%s", my_args.lxcpath[0], my_args.name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> diff --git a/src/lxc/lxc_wait.c b/src/lxc/lxc_wait.c
> index 0a3487f..b00377c 100644
> --- a/src/lxc/lxc_wait.c
> +++ b/src/lxc/lxc_wait.c
> @@ -98,6 +98,7 @@ int main(int argc, char *argv[])
>  
>  	if (!c->may_control(c)) {
>  		fprintf(stderr, "Insufficent privileges to control %s\n", c->name);
> +		lxc_container_put(c);
>  		return -1;
>  	}
>  
> -- 
> 1.8.1.2
> 
> 
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel




More information about the lxc-devel mailing list