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

S.Çağlar Onur caglar at 10ur.org
Fri Oct 4 03:54:50 UTC 2013


Signed-off-by: S.Çağlar Onur <caglar at 10ur.org>
---
 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





More information about the lxc-devel mailing list