From: Christian Brauner Date: Mon, 9 Nov 2015 20:47:27 +0000 (+0100) Subject: Use correct return when clone fails X-Git-Tag: lxc-2.0.0.beta1~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dca0532e37e44d1703b9fc80975d45dcffb0c27d;p=thirdparty%2Flxc.git Use correct return when clone fails When the clone failed we tried to destroy the container. This will lead to a segfault. Instead simply return -1. Also move the call to free_mnts() after the put label to free the user specified mounts even when we just goto put. Signed-off-by: Christian Brauner Acked-by: Serge E. Hallyn --- diff --git a/src/lxc/lxc_copy.c b/src/lxc/lxc_copy.c index 2ce4c9127..6336b537b 100644 --- a/src/lxc/lxc_copy.c +++ b/src/lxc/lxc_copy.c @@ -388,7 +388,7 @@ static int do_clone_ephemeral(struct lxc_container *c, clone = c->clone(c, my_args->newname, my_args->newpath, flags, my_args->bdevtype, NULL, my_args->fssize, args); if (!clone) - goto err; + return -1; if (!my_args->keepdata) if (!clone->set_config_item(clone, "lxc.ephemeral", "1")) @@ -439,9 +439,9 @@ static int do_clone_ephemeral(struct lxc_container *c, return 0; err: - free_mnts(mnts, num); clone->destroy(clone); put: + free_mnts(mnts, num); lxc_container_put(clone); return -1; }