[lxc-devel] [lxc/master] c/r: initialize migrate_opts properly
adrianreber on Github
lxc-bot at linuxcontainers.org
Mon Jul 11 20:05:46 UTC 2016
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 838 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20160711/bc9b30b0/attachment.bin>
-------------- next part --------------
From ebb088e115fd81f86602af8a386ee41470c71a73 Mon Sep 17 00:00:00 2001
From: Adrian Reber <areber at redhat.com>
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 <areber at redhat.com>
---
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 8bd9b8e..4a4dc42 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));
}
More information about the lxc-devel
mailing list