All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Zhenyu Ye <yezhenyu2@huawei.com>
Cc: xiexiangyou@huawei.com, zhengchuan@huawei.com,
	qemu-devel@nongnu.org, dgilbert@redhat.com, quintela@redhat.com
Subject: Re: [PATCH v1] migration: tls: fix memory leak in migration_tls_get_creds
Date: Wed, 22 Jul 2020 10:15:58 +0100	[thread overview]
Message-ID: <20200722091558.GE2323046@redhat.com> (raw)
In-Reply-To: <20200722033228.71-1-yezhenyu2@huawei.com>

On Wed, Jul 22, 2020 at 11:32:28AM +0800, Zhenyu Ye wrote:
> Currently migration_tls_get_creds() adds the reference of creds
> but there was no place to unref it.  So the OBJECT(creds) will
> never be freed and result in memory leak.
> 
> The leak stack:
> Direct leak of 104 byte(s) in 1 object(s) allocated from:
>     #0 0xffffa88bd20b in __interceptor_malloc (/usr/lib64/libasan.so.4+0xd320b)
>     #1 0xffffa7f0cb1b in g_malloc (/usr/lib64/libglib-2.0.so.0+0x58b1b)
>     #2 0x14b58cb in object_new_with_type qom/object.c:634
>     #3 0x14b597b in object_new qom/object.c:645
>     #4 0x14c0e4f in user_creatable_add_type qom/object_interfaces.c:59
>     #5 0x141c78b in qmp_object_add qom/qom-qmp-cmds.c:312
>     #6 0x140e513 in qmp_marshal_object_add qapi/qapi-commands-qom.c:279
>     #7 0x176ba97 in do_qmp_dispatch qapi/qmp-dispatch.c:165
>     #8 0x176bee7 in qmp_dispatch qapi/qmp-dispatch.c:208
>     #9 0x136e337 in monitor_qmp_dispatch monitor/qmp.c:150
>     #10 0x136eae3 in monitor_qmp_bh_dispatcher monitor/qmp.c:239
>     #11 0x1852e93 in aio_bh_call util/async.c:89
>     #12 0x18531b7 in aio_bh_poll util/async.c:117
>     #13 0x18616bf in aio_dispatch util/aio-posix.c:459
>     #14 0x1853f37 in aio_ctx_dispatch util/async.c:268
>     #15 0xffffa7f06a7b in g_main_context_dispatch (/usr/lib64/libglib-2.0.so.0+0x52a7b)
> 
> Since we're fine to use the borrowed reference when using the creds,
> so just remove the object_ref() in migration_tls_get_creds().
> 
> Signed-off-by: Zhenyu Ye <yezhenyu2@huawei.com>
> ---
>  migration/tls.c | 1 -
>  1 file changed, 1 deletion(-)

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


> 
> diff --git a/migration/tls.c b/migration/tls.c
> index 5171afc6c4..7a02ec8656 100644
> --- a/migration/tls.c
> +++ b/migration/tls.c
> @@ -58,7 +58,6 @@ migration_tls_get_creds(MigrationState *s,
>          return NULL;
>      }
>  
> -    object_ref(OBJECT(ret));
>      return ret;
>  }
>  
> -- 
> 2.19.1
> 
> 

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 :|



  reply	other threads:[~2020-07-22  9:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-22  3:32 [PATCH v1] migration: tls: fix memory leak in migration_tls_get_creds Zhenyu Ye
2020-07-22  9:15 ` Daniel P. Berrangé [this message]
2020-08-27 17:36 ` Dr. David Alan Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200722091558.GE2323046@redhat.com \
    --to=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=xiexiangyou@huawei.com \
    --cc=yezhenyu2@huawei.com \
    --cc=zhengchuan@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.