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 <dave@treblig.org>
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
Link: https://lore.kernel.org/r/20251023161657.2821652-1-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
Peter Xu 2025-10-23 12:16:57 -04:00
parent ae00f0088f
commit c2a06e8f28

View file

@ -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;