From ebb088e115fd81f86602af8a386ee41470c71a73 Mon Sep 17 00:00:00 2001 From: Adrian Reber Date: Mon, 11 Jul 2016 21:55:43 +0200 Subject: [PATCH] c/r: initialize migrate_opts properly The commit "c/r: add support for CRIU's --action-script" breaks lxc-checkpoint on the command-line. It produces errors like: sh: $'\260\366\b\001': command not found and then it fails. src/lxc/criu.c expects migrate_opts->action_script to be either NULL, then it is ignored, or to actually contain the name of an action scripts. As the struct migrate_opts has not static storage is has to be explicitly initialized or the value of the structure's members is indeterminate. Signed-off-by: Adrian Reber --- src/lxc/lxccontainer.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 8bd9b8e0f..4a4dc42ba 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -3988,11 +3988,13 @@ WRAP_API_3(int, lxcapi_migrate, unsigned int, struct migrate_opts *, unsigned in static bool do_lxcapi_checkpoint(struct lxc_container *c, char *directory, bool stop, bool verbose) { - struct migrate_opts opts = { - .directory = directory, - .stop = stop, - .verbose = verbose, - }; + struct migrate_opts opts; + + memset(&opts, 0, sizeof(opts)); + + opts.directory = directory; + opts.stop = stop; + opts.verbose = verbose; return !do_lxcapi_migrate(c, MIGRATE_DUMP, &opts, sizeof(opts)); } @@ -4001,10 +4003,12 @@ WRAP_API_3(bool, lxcapi_checkpoint, char *, bool, bool) static bool do_lxcapi_restore(struct lxc_container *c, char *directory, bool verbose) { - struct migrate_opts opts = { - .directory = directory, - .verbose = verbose, - }; + struct migrate_opts opts; + + memset(&opts, 0, sizeof(opts)); + + opts.directory = directory; + opts.verbose = verbose; return !do_lxcapi_migrate(c, MIGRATE_RESTORE, &opts, sizeof(opts)); }