Commit bd0c9647 by Serge Hallyn Committed by Stéphane Graber

coverity: don't use newname after null check

Actually, get rid of the temporary variables, and set newname and lxcpath to usable values if they were NULL. Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com> Acked-by: 's avatarStéphane Graber <stgraber@ubuntu.com>
parent 7ed0eea6
...@@ -2641,7 +2641,6 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n ...@@ -2641,7 +2641,6 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
struct lxc_container *c2 = NULL; struct lxc_container *c2 = NULL;
char newpath[MAXPATHLEN]; char newpath[MAXPATHLEN];
int ret, storage_copied = 0; int ret, storage_copied = 0;
const char *n, *l;
char *origroot = NULL; char *origroot = NULL;
struct clone_update_data data; struct clone_update_data data;
FILE *fout; FILE *fout;
...@@ -2659,9 +2658,11 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n ...@@ -2659,9 +2658,11 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
} }
// Make sure the container doesn't yet exist. // Make sure the container doesn't yet exist.
n = newname ? newname : c->name; if (!newname)
l = lxcpath ? lxcpath : c->get_config_path(c); newname = c->name;
ret = snprintf(newpath, MAXPATHLEN, "%s/%s/config", l, n); if (!lxcpath)
lxcpath = c->get_config_path(c);
ret = snprintf(newpath, MAXPATHLEN, "%s/%s/config", lxcpath, newname);
if (ret < 0 || ret >= MAXPATHLEN) { if (ret < 0 || ret >= MAXPATHLEN) {
SYSERROR("clone: failed making config pathname"); SYSERROR("clone: failed making config pathname");
goto out; goto out;
...@@ -2691,7 +2692,7 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n ...@@ -2691,7 +2692,7 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n
fclose(fout); fclose(fout);
c->lxc_conf->rootfs.path = origroot; 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) { if (mkdir(newpath, 0755) < 0) {
SYSERROR("error creating %s", newpath); SYSERROR("error creating %s", newpath);
goto out; goto out;
...@@ -2704,9 +2705,10 @@ static struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *n ...@@ -2704,9 +2705,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) { 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; goto out;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment