From c2a06e8f28a14cfb26cc442269176ae60d1178ef Mon Sep 17 00:00:00 2001 From: Peter Xu Date: Thu, 23 Oct 2025 12:16:57 -0400 Subject: [PATCH] migration/cpr: Document obscure usage of g_autofree when parse str HMP parsing of cpr_exec_command contains an obscure usage of g_autofree. Provide a document for it to be clear that it's intentional, rather than memory leaked. Cc: Dr. David Alan Gilbert Reported-by: Peter Maydell Reviewed-by: Dr. David Alan Gilbert Link: https://lore.kernel.org/r/20251023161657.2821652-1-peterx@redhat.com Signed-off-by: Peter Xu --- migration/migration-hmp-cmds.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c index 847d18faaa..79426bf5d7 100644 --- a/migration/migration-hmp-cmds.c +++ b/migration/migration-hmp-cmds.c @@ -734,6 +734,12 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) visit_type_bool(v, param, &p->direct_io, &err); break; case MIGRATION_PARAMETER_CPR_EXEC_COMMAND: { + /* + * NOTE: g_autofree will only auto g_free() the strv array when + * needed, it will not free the strings within the array. It's + * intentional: when strv is set, the ownership of the strings will + * always be passed to p->cpr_exec_command via QAPI_LIST_APPEND(). + */ g_autofree char **strv = NULL; g_autoptr(GError) gerr = NULL; strList **tail = &p->cpr_exec_command; -- 2.47.3