Message ID | 20231128065106.120238-1-het.gala@nutanix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] migration: free 'channel' and 'addr' after their use in migration.c | expand |
Het Gala <het.gala@nutanix.com> writes: > 'channel' and 'addr' in qmp_migrate() and qmp_migrate_incoming() are > not auto-freed. migrate_uri_parse() allocates memory which is > returned to 'channel', which is leaked because there is no code for > freeing 'channel' or 'addr'. > So, free addr and channel to avoid memory leak. 'addr' does shallow > copying of channel->addr, hence free 'channel' itself and deep free > contents of 'addr' > > Fixes: 5994024f ("migration: Implement MigrateChannelList to qmp > migration flow") > Signed-off-by: Het Gala <het.gala@nutanix.com> > --- > migration/migration.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/migration/migration.c b/migration/migration.c > index 28a34c9068..29efb51b62 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -2004,6 +2004,8 @@ void qmp_migrate(const char *uri, bool has_channels, > MIGRATION_STATUS_FAILED); > block_cleanup_parameters(); > } > + g_free(channel); > + qapi_free_MigrationAddress(addr); > > if (local_err) { > if (!resume_requested) { See my review of v1.
diff --git a/migration/migration.c b/migration/migration.c index 28a34c9068..29efb51b62 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2004,6 +2004,8 @@ void qmp_migrate(const char *uri, bool has_channels, MIGRATION_STATUS_FAILED); block_cleanup_parameters(); } + g_free(channel); + qapi_free_MigrationAddress(addr); if (local_err) { if (!resume_requested) {
'channel' and 'addr' in qmp_migrate() and qmp_migrate_incoming() are not auto-freed. migrate_uri_parse() allocates memory which is returned to 'channel', which is leaked because there is no code for freeing 'channel' or 'addr'. So, free addr and channel to avoid memory leak. 'addr' does shallow copying of channel->addr, hence free 'channel' itself and deep free contents of 'addr' Fixes: 5994024f ("migration: Implement MigrateChannelList to qmp migration flow") Signed-off-by: Het Gala <het.gala@nutanix.com> --- migration/migration.c | 2 ++ 1 file changed, 2 insertions(+)