]> git.proxmox.com Git - mirror_qemu.git/commitdiff
test-resv-mem: Fix CID 1523911
authorEric Auger <eric.auger@redhat.com>
Fri, 10 Nov 2023 08:36:54 +0000 (09:36 +0100)
committerThomas Huth <thuth@redhat.com>
Mon, 13 Nov 2023 10:35:47 +0000 (11:35 +0100)
Coverity complains about passing "&expected" to "run_range_inverse_array",
which dereferences null "expected". I guess the problem is that the
compare_ranges() loop dereferences 'e' without testing it. However the
loop condition is based on 'ranges' which is garanteed to have
the same length as 'expected' given the g_assert_cmpint() just
before the loop. So the code looks safe to me.

Nevertheless adding a test on expected before the loop to get rid of the
warning.

Fixes: CID 1523901
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: Coverity (CID 1523901)
Message-ID: <20231110083654.277345-1-eric.auger@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
tests/unit/test-resv-mem.c

index 5963274e2c49729e2c959e18d7c92a94979641ec..cd8f7318cccb5e26ee7c6995f3195e75c9ce01ce 100644 (file)
@@ -44,6 +44,10 @@ static void compare_ranges(const char *prefix, GList *ranges,
     print_ranges("out", ranges);
     print_ranges("expected", expected);
 #endif
+    if (!expected) {
+        g_assert_true(!ranges);
+        return;
+    }
     g_assert_cmpint(g_list_length(ranges), ==, g_list_length(expected));
     for (l = ranges, e = expected; l ; l = l->next, e = e->next) {
         Range *r = (Range *)l->data;