[lxc-devel] [PATCH 1/2] coverity: don't use newname after null check

Serge Hallyn serge.hallyn at ubuntu.com
Mon Aug 11 14:10:04 UTC 2014


Actually, get rid of the temporary variables, and set newname
and lxcpath to usable values if they were NULL.

Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
 src/lxc/lxccontainer.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
index 38197d6..0cf21ce 100644
--- a/src/lxc/lxccontainer.c
+++ b/src/lxc/lxccontainer.c
@@ -2726,7 +2726,6 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
 	struct lxc_container *c2 = NULL;
 	char newpath[MAXPATHLEN];
 	int ret, storage_copied = 0;
-	const char *n, *l;
 	char *origroot = NULL;
 	struct clone_update_data data;
 	FILE *fout;
@@ -2744,9 +2743,11 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
 	}
 
 	// Make sure the container doesn't yet exist.
-	n = newname ? newname : c->name;
-	l = lxcpath ? lxcpath : c->get_config_path(c);
-	ret = snprintf(newpath, MAXPATHLEN, "%s/%s/config", l, n);
+	if (!newname)
+		newname = c->name;
+	if (!lxcpath)
+		lxcpath = c->get_config_path(c);
+	ret = snprintf(newpath, MAXPATHLEN, "%s/%s/config", lxcpath, newname);
 	if (ret < 0 || ret >= MAXPATHLEN) {
 		SYSERROR("clone: failed making config pathname");
 		goto out;
@@ -2776,7 +2777,7 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
 	fclose(fout);
 	c->lxc_conf->rootfs.path = origroot;
 
-	sprintf(newpath, "%s/%s/rootfs", l, n);
+	sprintf(newpath, "%s/%s/rootfs", lxcpath, newname);
 	if (mkdir(newpath, 0755) < 0) {
 		SYSERROR("error creating %s", newpath);
 		goto out;
@@ -2789,9 +2790,10 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
 		}
 	}
 
-	c2 = lxc_container_new(n, l);
+	c2 = lxc_container_new(newname, lxcpath);
 	if (!c2) {
-		ERROR("clone: failed to create new container (%s %s)", n, l);
+		ERROR("clone: failed to create new container (%s %s)", newname,
+				lxcpath);
 		goto out;
 	}
 
-- 
2.1.0.rc1



More information about the lxc-devel mailing list