[Qemu-devel] [PATCH] migration: fix small leak

Marc-André Lureau posted 1 patch 6 years, 8 months ago
Test asan failed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190308160731.23312-1-marcandre.lureau@redhat.com
Maintainers: Juan Quintela <quintela@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>
migration/migration.h | 2 +-
migration/migration.c | 2 +-
migration/socket.c    | 1 +
3 files changed, 3 insertions(+), 2 deletions(-)
[Qemu-devel] [PATCH] migration: fix small leak
Posted by Marc-André Lureau 6 years, 8 months ago
Spotted by ASAN, during make check.

Fixes: 9aca82ba3108d15529a2e0f5b0996cac309a7216 ("migration: Create
socket-address parameter")
Cc: Juan Quintela <quintela@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 migration/migration.h | 2 +-
 migration/migration.c | 2 +-
 migration/socket.c    | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/migration/migration.h b/migration/migration.h
index 99e99e56bd..1b10b19a67 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -308,7 +308,7 @@ void migrate_send_rp_resume_ack(MigrationIncomingState *mis, uint32_t value);
 
 void dirty_bitmap_mig_before_vm_start(void);
 void init_dirty_bitmap_incoming_migration(void);
-void migrate_add_address(SocketAddress *address);
+void migrate_add_address(const SocketAddress *address);
 
 int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque);
 
diff --git a/migration/migration.c b/migration/migration.c
index df6fd8e0e5..9cc2036796 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -335,7 +335,7 @@ void migration_incoming_enable_colo(void)
     migration_colo_enabled = true;
 }
 
-void migrate_add_address(SocketAddress *address)
+void migrate_add_address(const SocketAddress *address)
 {
     MigrationIncomingState *mis = migration_incoming_get_current();
     SocketAddressList *addrs;
diff --git a/migration/socket.c b/migration/socket.c
index 239527fb1f..49bacf78fd 100644
--- a/migration/socket.c
+++ b/migration/socket.c
@@ -199,6 +199,7 @@ static void socket_start_incoming_migration(SocketAddress *saddr,
             return;
         }
         migrate_add_address(address);
+        qapi_free_SocketAddress(address);
     }
 }
 
-- 
2.21.0.4.g36eb1cb9cf


Re: [Qemu-devel] [PATCH] migration: fix small leak
Posted by Peter Xu 6 years, 8 months ago
On Fri, Mar 08, 2019 at 05:07:31PM +0100, Marc-André Lureau wrote:

[...]

> diff --git a/migration/socket.c b/migration/socket.c
> index 239527fb1f..49bacf78fd 100644
> --- a/migration/socket.c
> +++ b/migration/socket.c
> @@ -199,6 +199,7 @@ static void socket_start_incoming_migration(SocketAddress *saddr,
>              return;
>          }
>          migrate_add_address(address);
> +        qapi_free_SocketAddress(address);

Or just don't clone in migrate_add_address()?  Either way:

Reviewed-by: Peter Xu <peterx@redhat.com>

Regards,

-- 
Peter Xu