]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
migration: Don't leak IO channels
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Wed, 1 Nov 2017 14:25:23 +0000 (14:25 +0000)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Mon, 12 Feb 2018 03:05:05 +0000 (21:05 -0600)
Since qemu_fopen_channel_{in,out}put take references on the underlying
IO channels, make sure to release our references to them.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Message-Id: <20171101142526.1006-2-ross.lagerwall@citrix.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
(cherry picked from commit 032b79f7173051e7f8742a43d106c7fc526856f9)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
migration/savevm.c

index b7908f62be3c0e10674783c89593f104368c19ed..4d6c79499f28efcc7c83a7aee8f3784237eec60a 100644 (file)
@@ -2266,6 +2266,7 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
     }
     qio_channel_set_name(QIO_CHANNEL(ioc), "migration-xen-save-state");
     f = qemu_fopen_channel_output(QIO_CHANNEL(ioc));
+    object_unref(OBJECT(ioc));
     ret = qemu_save_device_state(f);
     qemu_fclose(f);
     if (ret < 0) {
@@ -2313,6 +2314,7 @@ void qmp_xen_load_devices_state(const char *filename, Error **errp)
     }
     qio_channel_set_name(QIO_CHANNEL(ioc), "migration-xen-load-state");
     f = qemu_fopen_channel_input(QIO_CHANNEL(ioc));
+    object_unref(OBJECT(ioc));
 
     ret = qemu_loadvm_state(f);
     qemu_fclose(f);