From: Jan Kiszka Date: Mon, 30 Nov 2009 17:21:19 +0000 (+0100) Subject: migration: Fix use of file after release X-Git-Tag: v0.12.0-rc0~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d39c799c3245244ebb1e89da0177dbc089962b2;p=thirdparty%2Fqemu.git migration: Fix use of file after release qemu_fclose frees the passed file structure, but do_migrate_set_speed may access it later on. Fix it by setting file NULL in migrate_fd_cleanup and checking for this. Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- diff --git a/migration.c b/migration.c index 3ae0be86c84..dcde7c38da1 100644 --- a/migration.c +++ b/migration.c @@ -118,12 +118,11 @@ void do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) } max_throttle = (uint32_t)d; - s = migrate_to_fms(current_migration); - if (s) { + s = migrate_to_fms(current_migration); + if (s && s->file) { qemu_file_set_rate_limit(s->file, max_throttle); } - } /* amount of nanoseconds we are willing to wait for migration to be down. @@ -209,6 +208,7 @@ void migrate_fd_cleanup(FdMigrationState *s) if (s->file) { dprintf("closing file\n"); qemu_fclose(s->file); + s->file = NULL; } if (s->fd != -1)