aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>2017-07-26 23:42:10 -0300
committerMichael Tokarev <mjt@tls.msk.ru>2017-07-31 13:06:38 +0300
commitf80ac75d0e6e6e7481d61cdb86e5a741a442f100 (patch)
treea79e06911ec0f56ee612eb495ff6b92fe4b21c23
parentb7b1e9dd6d56612d4656817b11e43d9fbefdc497 (diff)
qcow2: fix null pointer dereference
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>
-rw-r--r--block/qcow2-refcount.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index c9b0dcb4f3..168fc32e7b 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -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]);
}