[lxc-devel] [lxc/master] bugfixes

brauner on Github lxc-bot at linuxcontainers.org
Thu Jun 27 12:28:44 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 364 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190627/092573c0/attachment.bin>
-------------- next part --------------
From a64edc1c8d5b917180419b7b28a75f50217cbc2f Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Thu, 27 Jun 2019 14:25:53 +0200
Subject: [PATCH 1/5] cgroups: use __do_free

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 src/lxc/cgroups/cgfsng.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
index 4cf67950ab..bb0c90981f 100644
--- a/src/lxc/cgroups/cgfsng.c
+++ b/src/lxc/cgroups/cgfsng.c
@@ -2754,7 +2754,7 @@ __cgfsng_ops static bool cgfsng_data_init(struct cgroup_ops *ops)
 
 struct cgroup_ops *cgfsng_ops_init(struct lxc_conf *conf)
 {
-	struct cgroup_ops *cgfsng_ops;
+	__do_free struct cgroup_ops *cgfsng_ops = NULL;
 
 	cgfsng_ops = malloc(sizeof(struct cgroup_ops));
 	if (!cgfsng_ops)
@@ -2763,10 +2763,8 @@ struct cgroup_ops *cgfsng_ops_init(struct lxc_conf *conf)
 	memset(cgfsng_ops, 0, sizeof(struct cgroup_ops));
 	cgfsng_ops->cgroup_layout = CGROUP_LAYOUT_UNKNOWN;
 
-	if (!cg_init(cgfsng_ops, conf)) {
-		free(cgfsng_ops);
+	if (!cg_init(cgfsng_ops, conf))
 		return NULL;
-	}
 
 	cgfsng_ops->data_init = cgfsng_data_init;
 	cgfsng_ops->payload_destroy = cgfsng_payload_destroy;
@@ -2790,5 +2788,5 @@ struct cgroup_ops *cgfsng_ops_init(struct lxc_conf *conf)
 	cgfsng_ops->mount = cgfsng_mount;
 	cgfsng_ops->nrtasks = cgfsng_nrtasks;
 
-	return cgfsng_ops;
+	return move_ptr(cgfsng_ops);
 }

From 431e2c547f282dbcfac49f81a92fd718698b1806 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Thu, 27 Jun 2019 14:26:14 +0200
Subject: [PATCH 2/5] cgroups: move variables into tighter scope

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 src/lxc/cgroups/cgfsng.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
index bb0c90981f..ae2f5dcf93 100644
--- a/src/lxc/cgroups/cgfsng.c
+++ b/src/lxc/cgroups/cgfsng.c
@@ -2411,15 +2411,13 @@ __cgfsng_ops static bool cgfsng_setup_limits(struct cgroup_ops *ops,
 static bool cgroup_use_wants_controllers(const struct cgroup_ops *ops,
 				       char **controllers)
 {
-	char **cur_ctrl, **cur_use;
-
 	if (!ops->cgroup_use)
 		return true;
 
-	for (cur_ctrl = controllers; cur_ctrl && *cur_ctrl; cur_ctrl++) {
+	for (char **cur_ctrl = controllers; cur_ctrl && *cur_ctrl; cur_ctrl++) {
 		bool found = false;
 
-		for (cur_use = ops->cgroup_use; cur_use && *cur_use; cur_use++) {
+		for (char **cur_use = ops->cgroup_use; cur_use && *cur_use; cur_use++) {
 			if (strcmp(*cur_use, *cur_ctrl) != 0)
 				continue;
 

From 6280d4c97dd3b72aa2f72cf44b9af888a03052df Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Thu, 27 Jun 2019 14:26:38 +0200
Subject: [PATCH 3/5] cgroups: simplify cgfsng_setup_limits()

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 src/lxc/cgroups/cgfsng.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
index ae2f5dcf93..daa2a75d3d 100644
--- a/src/lxc/cgroups/cgfsng.c
+++ b/src/lxc/cgroups/cgfsng.c
@@ -2396,13 +2396,10 @@ static bool __cg_unified_setup_limits(struct cgroup_ops *ops,
 }
 
 __cgfsng_ops static bool cgfsng_setup_limits(struct cgroup_ops *ops,
-					       struct lxc_conf *conf,
-					       bool do_devices)
+					     struct lxc_conf *conf,
+					     bool do_devices)
 {
-	bool bret;
-
-	bret = __cg_legacy_setup_limits(ops, &conf->cgroup, do_devices);
-	if (!bret)
+	if (!__cg_legacy_setup_limits(ops, &conf->cgroup, do_devices))
 		return false;
 
 	return __cg_unified_setup_limits(ops, &conf->cgroup2);

From c05b17bd66142da80ab9031cb19ee8e4441c59e9 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Thu, 27 Jun 2019 14:27:39 +0200
Subject: [PATCH 4/5] cgroups: use __do_free in cgfsng_attach()

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 src/lxc/cgroups/cgfsng.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
index daa2a75d3d..b0f90f2229 100644
--- a/src/lxc/cgroups/cgfsng.c
+++ b/src/lxc/cgroups/cgfsng.c
@@ -2097,8 +2097,7 @@ __cgfsng_ops static bool cgfsng_attach(struct cgroup_ops *ops, const char *name,
 		return false;
 
 	for (i = 0; ops->hierarchies[i]; i++) {
-		__do_free char *path = NULL;
-		char *fullpath = NULL;
+		__do_free char *fullpath = NULL, *path = NULL;
 		struct hierarchy *h = ops->hierarchies[i];
 
 		if (h->version == CGROUP2_SUPER_MAGIC) {

From 81b5d48a34ef5d20a8795aa322002045cc20b5df Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Thu, 27 Jun 2019 14:27:58 +0200
Subject: [PATCH 5/5] cgroups: move variable into tighter scope

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 src/lxc/cgroups/cgfsng.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
index b0f90f2229..f29ccd1bcc 100644
--- a/src/lxc/cgroups/cgfsng.c
+++ b/src/lxc/cgroups/cgfsng.c
@@ -2086,7 +2086,7 @@ static int __cg_unified_attach(const struct hierarchy *h, const char *name,
 __cgfsng_ops static bool cgfsng_attach(struct cgroup_ops *ops, const char *name,
 					 const char *lxcpath, pid_t pid)
 {
-	int i, len, ret;
+	int len, ret;
 	char pidstr[INTTYPE_TO_STRLEN(pid_t)];
 
 	if (!ops->hierarchies)
@@ -2096,7 +2096,7 @@ __cgfsng_ops static bool cgfsng_attach(struct cgroup_ops *ops, const char *name,
 	if (len < 0 || (size_t)len >= sizeof(pidstr))
 		return false;
 
-	for (i = 0; ops->hierarchies[i]; i++) {
+	for (int i = 0; ops->hierarchies[i]; i++) {
 		__do_free char *fullpath = NULL, *path = NULL;
 		struct hierarchy *h = ops->hierarchies[i];
 


More information about the lxc-devel mailing list