qcow2: fix null pointer dereference
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>
Thu, 27 Jul 2017 02:42:10 +0000 (23:42 -0300)
committerMichael Tokarev <mjt@tls.msk.ru>
Mon, 31 Jul 2017 10:06:38 +0000 (13:06 +0300)
It seems this assert() was somehow misplaced.

block/qcow2-refcount.c:2193:42: warning: Array access (from variable 'on_disk_reftable') results in a null pointer dereference
        on_disk_reftable[refblock_index] = refblock_offset;
        ~~~~~~~~~~~~~~~~                 ^

Reported-by: Clang Static Analyzer
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
block/qcow2-refcount.c

index c9b0dcb4f3fd143818ce91ba83020ff7492e9c91..168fc32e7b31936b413e99b0adf5b678ccce59a2 100644 (file)
@@ -2189,6 +2189,8 @@ write_refblocks:
              * this will leak that range, but we can easily fix that by running
              * a leak-fixing check after this rebuild operation */
             reftable_offset = -1;
+        } else {
+            assert(on_disk_reftable);
         }
         on_disk_reftable[refblock_index] = refblock_offset;
 
@@ -2258,8 +2260,6 @@ write_refblocks:
         goto write_refblocks;
     }
 
-    assert(on_disk_reftable);
-
     for (refblock_index = 0; refblock_index < reftable_size; refblock_index++) {
         cpu_to_be64s(&on_disk_reftable[refblock_index]);
     }