[PATCH] migration: Plug memory leak on HMP migrate error path

Markus Armbruster posted 1 patch 8 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240117140722.3979657-1-armbru@redhat.com
Maintainers: Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>
migration/migration-hmp-cmds.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH] migration: Plug memory leak on HMP migrate error path
Posted by Markus Armbruster 8 months, 1 week ago
hmp_migrate() leaks @caps when qmp_migrate() fails.  Plug the leak
with g_autoptr().

Fixes: 967f2de5c9ec (migration: Implement MigrateChannelList to hmp migration flow.) v8.2.0-rc0
Fixes: CID 1533124
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 migration/migration-hmp-cmds.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index 740a219aa4..99b49df5dd 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -764,7 +764,7 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
     bool resume = qdict_get_try_bool(qdict, "resume", false);
     const char *uri = qdict_get_str(qdict, "uri");
     Error *err = NULL;
-    MigrationChannelList *caps = NULL;
+    g_autoptr(MigrationChannelList) caps = NULL;
     g_autoptr(MigrationChannel) channel = NULL;
 
     if (inc) {
@@ -789,8 +789,6 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
         return;
     }
 
-    qapi_free_MigrationChannelList(caps);
-
     if (!detach) {
         HMPMigrationStatus *status;
 
-- 
2.43.0
Re: [PATCH] migration: Plug memory leak on HMP migrate error path
Posted by Peter Maydell 8 months ago
On Wed, 17 Jan 2024 at 19:49, Markus Armbruster <armbru@redhat.com> wrote:
>
> hmp_migrate() leaks @caps when qmp_migrate() fails.  Plug the leak
> with g_autoptr().
>
> Fixes: 967f2de5c9ec (migration: Implement MigrateChannelList to hmp migration flow.) v8.2.0-rc0
> Fixes: CID 1533124

Isn't this 1533125 ? 1533124 is a false positive in
the migrate_mode() function.

> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  migration/migration-hmp-cmds.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
> index 740a219aa4..99b49df5dd 100644
> --- a/migration/migration-hmp-cmds.c
> +++ b/migration/migration-hmp-cmds.c
> @@ -764,7 +764,7 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
>      bool resume = qdict_get_try_bool(qdict, "resume", false);
>      const char *uri = qdict_get_str(qdict, "uri");
>      Error *err = NULL;
> -    MigrationChannelList *caps = NULL;
> +    g_autoptr(MigrationChannelList) caps = NULL;
>      g_autoptr(MigrationChannel) channel = NULL;
>
>      if (inc) {
> @@ -789,8 +789,6 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
>          return;
>      }
>
> -    qapi_free_MigrationChannelList(caps);
> -
>      if (!detach) {
>          HMPMigrationStatus *status;

thanks
-- PMM
Re: [PATCH] migration: Plug memory leak on HMP migrate error path
Posted by Peter Xu 8 months ago
On Tue, Jan 23, 2024 at 04:33:43PM +0000, Peter Maydell wrote:
> On Wed, 17 Jan 2024 at 19:49, Markus Armbruster <armbru@redhat.com> wrote:
> >
> > hmp_migrate() leaks @caps when qmp_migrate() fails.  Plug the leak
> > with g_autoptr().
> >
> > Fixes: 967f2de5c9ec (migration: Implement MigrateChannelList to hmp migration flow.) v8.2.0-rc0
> > Fixes: CID 1533124
> 
> Isn't this 1533125 ? 1533124 is a false positive in
> the migrate_mode() function.

Indeed.. I fixed it in the staging branch (which will be in the final
pull), thanks.

https://gitlab.com/peterx/qemu/-/commit/74278c11b980429916116baf0f742357af51ebb4

-- 
Peter Xu
Re: [PATCH] migration: Plug memory leak on HMP migrate error path
Posted by Markus Armbruster 8 months ago
Peter Xu <peterx@redhat.com> writes:

> On Tue, Jan 23, 2024 at 04:33:43PM +0000, Peter Maydell wrote:
>> On Wed, 17 Jan 2024 at 19:49, Markus Armbruster <armbru@redhat.com> wrote:
>> >
>> > hmp_migrate() leaks @caps when qmp_migrate() fails.  Plug the leak
>> > with g_autoptr().
>> >
>> > Fixes: 967f2de5c9ec (migration: Implement MigrateChannelList to hmp migration flow.) v8.2.0-rc0
>> > Fixes: CID 1533124
>> 
>> Isn't this 1533125 ? 1533124 is a false positive in
>> the migrate_mode() function.

Yes.

> Indeed.. I fixed it in the staging branch (which will be in the final
> pull), thanks.
>
> https://gitlab.com/peterx/qemu/-/commit/74278c11b980429916116baf0f742357af51ebb4

Thanks for catching & fixing my typo!
Re: [PATCH] migration: Plug memory leak on HMP migrate error path
Posted by Peter Xu 8 months ago
On Wed, Jan 17, 2024 at 03:07:22PM +0100, Markus Armbruster wrote:
> hmp_migrate() leaks @caps when qmp_migrate() fails.  Plug the leak
> with g_autoptr().
> 
> Fixes: 967f2de5c9ec (migration: Implement MigrateChannelList to hmp migration flow.) v8.2.0-rc0
> Fixes: CID 1533124
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

queued, thanks!

-- 
Peter Xu