[PATCH v2] multifd/tls: fix memoryleak of the QIOChannelSocket object when cancelling migration

Chuan Zheng posted 1 patch 5 years ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1605104763-118687-1-git-send-email-zhengchuan@huawei.com
migration/multifd.c | 1 +
1 file changed, 1 insertion(+)
[PATCH v2] multifd/tls: fix memoryleak of the QIOChannelSocket object when cancelling migration
Posted by Chuan Zheng 5 years ago
When creating new tls client, the tioc->master will be referenced which results in socket
leaking after multifd_save_cleanup if we cancel migration.
Fix it by do object_unref() after tls client creation.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
---
 migration/multifd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/migration/multifd.c b/migration/multifd.c
index 68b171f..6992761 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -752,6 +752,7 @@ static void multifd_tls_channel_connect(MultiFDSendParams *p,
         return;
     }
 
+    object_unref(OBJECT(ioc));
     trace_multifd_tls_outgoing_handshake_start(ioc, tioc, hostname);
     qio_channel_set_name(QIO_CHANNEL(tioc), "multifd-tls-outgoing");
     qio_channel_tls_handshake(tioc,
-- 
1.8.3.1


Re: [PATCH v2] multifd/tls: fix memoryleak of the QIOChannelSocket object when cancelling migration
Posted by Daniel P. Berrangé 5 years ago
Note to migration maintainers - this is desirable for 5.2

On Wed, Nov 11, 2020 at 10:26:03PM +0800, Chuan Zheng wrote:
> When creating new tls client, the tioc->master will be referenced which results in socket
> leaking after multifd_save_cleanup if we cancel migration.
> Fix it by do object_unref() after tls client creation.
> 
> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
> ---
>  migration/multifd.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/migration/multifd.c b/migration/multifd.c
> index 68b171f..6992761 100644
> --- a/migration/multifd.c
> +++ b/migration/multifd.c
> @@ -752,6 +752,7 @@ static void multifd_tls_channel_connect(MultiFDSendParams *p,
>          return;
>      }
>  
> +    object_unref(OBJECT(ioc));
>      trace_multifd_tls_outgoing_handshake_start(ioc, tioc, hostname);
>      qio_channel_set_name(QIO_CHANNEL(tioc), "multifd-tls-outgoing");
>      qio_channel_tls_handshake(tioc,

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|