Description of problem:
Covscan reports a possible NULL dereference in qcow2_check_refcounts.c:
qemu-kvm-0.12.1.2/block/qcow2-refcount.c:1390: returned_null: Function "g_realloc(gpointer, gsize)" returns null.
qemu-kvm-0.12.1.2/block/qcow2-refcount.c:1390: var_assigned: Assigning: "refcount_table" = null return value from "g_realloc(gpointer, gsize)".
qemu-kvm-0.12.1.2/block/qcow2-refcount.c:1395: dereference: Dereferencing a null pointer "refcount_table".
Here is the patch that introduced the problem:
commit 2f2ce9aa507d233f9a3c690e2cf815e7162de56c
Author: Max Reitz <mreitz>
Date: Fri May 2 16:58:43 2014 -0500
qcow2-refcount: Repair shared refcount blocks
Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.427.el6
How reproducible:
N/A
g_realloc() may only return NULL if the number of bytes requested is zero. nb_clusters is guaranteed to be non-zero, therefore g_realloc() should never return NULL here.
I'll add an assertion for refcount_table to be non-NULL, which will hopefully silence covscan.