In the best case we'll get errors about failing to remove it. In the worst case we'll be trying to delete the original container's rootfs.
Reported-by: zoolook <nbensa+lxcus...@gmail.com> Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com> --- src/lxc/lxccontainer.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index b6d5b2f..677fa56 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -1866,7 +1866,7 @@ struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *newname, { struct lxc_container *c2 = NULL; char newpath[MAXPATHLEN]; - int ret; + int ret, storage_copied = 0; const char *n, *l; FILE *fout; @@ -1948,6 +1948,10 @@ struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *newname, if (ret < 0) goto out; + // We've now successfully created c2's storage, so clear it out if we + // fail after this + storage_copied = 1; + if (!c2->save_config(c2, NULL)) goto out; @@ -1961,6 +1965,8 @@ struct lxc_container *lxcapi_clone(struct lxc_container *c, const char *newname, out: container_mem_unlock(c); if (c2) { + if (!storage_copied) + c2->lxc_conf->rootfs.path = NULL; c2->destroy(c2); lxc_container_put(c2); } -- 1.8.1.2 ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel