Fabiano Rosas <faro...@suse.de> writes:

> Caught by inspection, but ASAN also reports:
>
> Direct leak of 16 byte(s) in 1 object(s) allocated from:
>  #0 in malloc
>  #1 in g_malloc
>  #2 in g_memdup
>  #3 in qapi_clone_start_struct ../qapi/qapi-clone-visitor.c:40:12
>  #4 in qapi_clone_start_list ../qapi/qapi-clone-visitor.c:59:12
>  #5 in visit_start_list ../qapi/qapi-visit-core.c:80:10
>  #6 in visit_type_BitmapMigrationNodeAliasList 
> qapi/qapi-visit-migration.c:639:10
>  #7 in migrate_params_apply ../migration/options.c:1407:13
>  #8 in qmp_migrate_set_parameters ../migration/options.c:1463:5
>  #9 in qmp_marshal_migrate_set_parameters qapi/qapi-commands-migration.c:214:5
>  #10 in do_qmp_dispatch_bh ../qapi/qmp-dispatch.c:128:5

migration_instance_finalize() runs when a TYPE_MIGRATION object dies, we
have just one such object, pointed to by @current_migration, and it
lives until QEMU shuts down.

So this is as harmless as they get.  Please mentions this in the commit
message, to guide backporters.

> Signed-off-by: Fabiano Rosas <faro...@suse.de>
> ---
>  migration/migration.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/migration/migration.c b/migration/migration.c
> index 4098870bce..7ec60d97f9 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -4050,6 +4050,7 @@ static void migration_instance_finalize(Object *obj)
>  {
>      MigrationState *ms = MIGRATION_OBJ(obj);
>  
> +    
> qapi_free_BitmapMigrationNodeAliasList(ms->parameters.block_bitmap_mapping);
>      qemu_mutex_destroy(&ms->error_mutex);
>      qemu_mutex_destroy(&ms->qemu_file_lock);
>      qemu_sem_destroy(&ms->wait_unplug_sem);

With an adjusted commit message:
Reviewed-by: Markus Armbruster <arm...@redhat.com>


Reply via email to