migration: Fix error leak in postcopy_ram_listen_thread()
As reported and analyzed by Peter:
https://lore.kernel.org/r/CAFEAcA9otBWtR7rPQ0Y9aBm+7ZWJzd4VWpXrAmGr8XspPn+zpw@mail.gmail.com
Fix it by freeing the error. When at it, always reset the local_err
pointer in both paths.
Cc: Arun Menon <armenon@redhat.com>
Resolves: Coverity CID 1641390
Fixes: 94272d9b45 ("migration: Capture error in postcopy_ram_listen_thread()")
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20251021220407.2662288-2-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
346479c304
commit
6f190736bf
1 changed files with 4 additions and 3 deletions
|
|
@ -2136,17 +2136,18 @@ static void *postcopy_ram_listen_thread(void *opaque)
|
|||
if (postcopy_state_get() == POSTCOPY_INCOMING_RUNNING &&
|
||||
!migrate_postcopy_ram() && migrate_dirty_bitmaps())
|
||||
{
|
||||
error_report("%s: loadvm failed during postcopy: %d. All states "
|
||||
error_report("%s: loadvm failed during postcopy: %d: %s. All states "
|
||||
"are migrated except dirty bitmaps. Some dirty "
|
||||
"bitmaps may be lost, and present migrated dirty "
|
||||
"bitmaps are correctly migrated and valid.",
|
||||
__func__, load_res);
|
||||
__func__, load_res, error_get_pretty(local_err));
|
||||
g_clear_pointer(&local_err, error_free);
|
||||
load_res = 0; /* prevent further exit() */
|
||||
} else {
|
||||
error_prepend(&local_err,
|
||||
"loadvm failed during postcopy: %d: ", load_res);
|
||||
migrate_set_error(migr, local_err);
|
||||
error_report_err(local_err);
|
||||
g_clear_pointer(&local_err, error_report_err);
|
||||
migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_ACTIVE,
|
||||
MIGRATION_STATUS_FAILED);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue