From: Steve Sistare Date: Mon, 13 Nov 2023 20:23:45 +0000 (-0800) Subject: migration: fix coverity migrate_mode finding X-Git-Tag: v9.0.0-rc0~124^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b12635ff08ab2e5a6a955c6866ef4525fb3deb5d;p=thirdparty%2Fqemu.git migration: fix coverity migrate_mode finding Coverity diagnoses a possible out-of-range array index here ... static GSList *migration_blockers[MIG_MODE__MAX]; fill_source_migration_info() { GSList *cur_blocker = migration_blockers[migrate_mode()]; ... because it does not know that MIG_MODE__MAX will never be returned as a migration mode. To fix, assert so in migrate_mode(). Fixes: fa3673e497a1 ("migration: per-mode blockers") Reported-by: Peter Maydell Suggested-by: Peter Maydell Signed-off-by: Steve Sistare Reviewed-by: Fabiano Rosas Link: https://lore.kernel.org/r/1699907025-215450-1-git-send-email-steven.sistare@oracle.com Signed-off-by: Peter Xu --- diff --git a/migration/options.c b/migration/options.c index 8d8ec73ad95..3e3e0b93b43 100644 --- a/migration/options.c +++ b/migration/options.c @@ -833,8 +833,10 @@ uint64_t migrate_max_postcopy_bandwidth(void) MigMode migrate_mode(void) { MigrationState *s = migrate_get_current(); + MigMode mode = s->parameters.mode; - return s->parameters.mode; + assert(mode >= 0 && mode < MIG_MODE__MAX); + return mode; } int migrate_multifd_channels(void)