]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: #1425734
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 6 Dec 2017 20:16:38 +0000 (21:16 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 17 Dec 2017 15:25:14 +0000 (16:25 +0100)
free memory on error

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/lxccontainer.c

index e6366005526db32f9d8eb5c1345cabbe15222989..8fb158ab2f3701a9f7f23a5168bf312eb55c5d56 100644 (file)
@@ -4167,7 +4167,7 @@ WRAP_API_2(bool, lxcapi_detach_interface, const char *, const char *)
 static int do_lxcapi_migrate(struct lxc_container *c, unsigned int cmd,
                             struct migrate_opts *opts, unsigned int size)
 {
-       int ret;
+       int ret = -1;
        struct migrate_opts *valid_opts = opts;
 
        /* If the caller has a bigger (newer) struct migrate_opts, let's make
@@ -4204,21 +4204,21 @@ static int do_lxcapi_migrate(struct lxc_container *c, unsigned int cmd,
        case MIGRATE_PRE_DUMP:
                if (!do_lxcapi_is_running(c)) {
                        ERROR("container is not running");
-                       return false;
+                       goto on_error;
                }
                ret = !__criu_pre_dump(c, valid_opts);
                break;
        case MIGRATE_DUMP:
                if (!do_lxcapi_is_running(c)) {
                        ERROR("container is not running");
-                       return false;
+                       goto on_error;
                }
                ret = !__criu_dump(c, valid_opts);
                break;
        case MIGRATE_RESTORE:
                if (do_lxcapi_is_running(c)) {
                        ERROR("container is already running");
-                       return false;
+                       goto on_error;
                }
                ret = !__criu_restore(c, valid_opts);
                break;
@@ -4227,6 +4227,7 @@ static int do_lxcapi_migrate(struct lxc_container *c, unsigned int cmd,
                ret = -EINVAL;
        }
 
+on_error:
        if (size < sizeof(*opts))
                free(valid_opts);