From 00c14997cb95bf3e6c18c2264ef5e10642d89b3a Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Fri, 19 Jul 2013 11:23:45 +0900 Subject: [PATCH 1/2] migration: send total time in QMP at "completed" stage The "completed" stage sets total_time but not has_total_time and thus it is not sent via QMP reply (but sent via HMP nevertheless) Signed-off-by: Pawit Pornkitprasan Reviewed-by: Eric Blake Reviewed-by: Orit Wasserman Signed-off-by: Luiz Capitulino --- migration.c | 1 + 1 file changed, 1 insertion(+) diff --git a/migration.c b/migration.c index 9fc72943fb..3f682cdc7f 100644 --- a/migration.c +++ b/migration.c @@ -231,6 +231,7 @@ MigrationInfo *qmp_query_migrate(Error **errp) info->has_status = true; info->status = g_strdup("completed"); + info->has_total_time = true; info->total_time = s->total_time; info->has_downtime = true; info->downtime = s->downtime; From 8c0426aed1d2279845e6a2c3355da8b5d9926cb6 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Tue, 30 Jul 2013 08:39:52 +0900 Subject: [PATCH 2/2] migration: don't use uninitialized variables The qmp_migrate method uses the 'blk' and 'inc' parameter without checking if they're valid or not (they may be uninitialized if command is received via QMP) Signed-off-by: Pawit Pornkitprasan Reviewed-by: Eric Blake Signed-off-by: Luiz Capitulino --- migration.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migration.c b/migration.c index 3f682cdc7f..1402fa7680 100644 --- a/migration.c +++ b/migration.c @@ -400,8 +400,8 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, MigrationParams params; const char *p; - params.blk = blk; - params.shared = inc; + params.blk = has_blk && blk; + params.shared = has_inc && inc; if (s->state == MIG_STATE_ACTIVE || s->state == MIG_STATE_SETUP) { error_set(errp, QERR_MIGRATION_ACTIVE);