]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
migration: HMP: Fix possible out-of-bounds access
authorFabiano Rosas <farosas@suse.de>
Wed, 16 Jul 2025 18:26:46 +0000 (15:26 -0300)
committerFabiano Rosas <farosas@suse.de>
Tue, 22 Jul 2025 22:39:29 +0000 (19:39 -0300)
Coverity has caught a bug in the formatting of time intervals for
postcopy latency distribution display in 'info migrate'.

While bounds checking the labels array, sizeof is incorrectly being
used. ARRAY_SIZE is the correct form of obtaining the size of an
array.

Fixes: 3345fb3b6d ("migration/postcopy: Add latency distribution report for blocktime")
Resolves: Coverity CID 1612248
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Link: https://lore.kernel.org/qemu-devel/20250716182648.30202-2-farosas@suse.de
Signed-off-by: Fabiano Rosas <farosas@suse.de>
migration/migration-hmp-cmds.c

index cef5608210e83af6bb7e1c5c69da19258358f527..bb954881d782b7781a43b0d6544ef793dc82bb7e 100644 (file)
@@ -57,11 +57,9 @@ static const gchar *format_time_str(uint64_t us)
     const char *units[] = {"us", "ms", "sec"};
     int index = 0;
 
-    while (us > 1000) {
+    while (us > 1000 && index + 1 < ARRAY_SIZE(units)) {
         us /= 1000;
-        if (++index >= (sizeof(units) - 1)) {
-            break;
-        }
+        index++;
     }
 
     return g_strdup_printf("%"PRIu64" %s", us, units[index]);