diff options
author | Gonglei (Arei) <arei.gonglei@huawei.com> | 2014-01-30 20:08:35 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2014-02-04 16:49:24 +0100 |
commit | 905f26f2221e139ac0e7317ddac158c50f5cf876 (patch) | |
tree | 420e6d998f90b84df75f6366d16fb6b6871d4761 /migration.c | |
parent | c91e681a558fc21073ffc491b5a022d5f340fa0b (diff) | |
download | qemu-905f26f2221e139ac0e7317ddac158c50f5cf876.tar.gz qemu-905f26f2221e139ac0e7317ddac158c50f5cf876.tar.bz2 qemu-905f26f2221e139ac0e7317ddac158c50f5cf876.zip |
migration:fix free XBZRLE decoded_buf wrong
When qemu do live migration with xbzrle, qemu malloc decoded_buf
at destination end but free it at source end. It will crash qemu
by double free error in some scenarios. Splitting the XBZRLE structure
for clear logic distinguishing src/dst side.
Signed-off-by: ChenLiang <chenliang88@huawei.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Signed-off-by: GongLei <arei.gonglei@huawei.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration.c')
-rw-r--r-- | migration.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/migration.c b/migration.c index 84587e9e5a..46a7305395 100644 --- a/migration.c +++ b/migration.c @@ -105,6 +105,7 @@ static void process_incoming_migration_co(void *opaque) ret = qemu_loadvm_state(f); qemu_fclose(f); + free_xbzrle_decoded_buf(); if (ret < 0) { fprintf(stderr, "load of migration failed\n"); exit(EXIT_FAILURE); |