summary refs log tree commit diff stats
path: root/tests/unit/test-resv-mem.c
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2023-11-10 09:36:54 +0100
committerThomas Huth <thuth@redhat.com>2023-11-13 11:35:47 +0100
commit2e990d81d9813628148f64b944691b5cbc251fab (patch)
tree58e9df9c3f90f755a1038cce2a2c15fc758fb851 /tests/unit/test-resv-mem.c
parent00ac955b06b28803319159551bfed6a130f8ec2f (diff)
downloadfocaccia-qemu-2e990d81d9813628148f64b944691b5cbc251fab.tar.gz
focaccia-qemu-2e990d81d9813628148f64b944691b5cbc251fab.zip
test-resv-mem: Fix CID 1523911
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>
Diffstat (limited to 'tests/unit/test-resv-mem.c')
-rw-r--r--tests/unit/test-resv-mem.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tests/unit/test-resv-mem.c b/tests/unit/test-resv-mem.c
index 5963274e2c..cd8f7318cc 100644
--- a/tests/unit/test-resv-mem.c
+++ b/tests/unit/test-resv-mem.c
@@ -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;