On 24/07/2017 20:42, Eric Blake wrote: > On 07/24/2017 01:27 PM, Philippe Mathieu-Daudé wrote: >> This is equivalent to assert(russian roulette) so better remove it. >> >> block/qcow2-bitmap.c:259:29: warning: The left operand of '==' is a garbage >> value >> assert(bitmap_table == NULL); >> ~~~~~~~~~~~~ ^ >> >> Reported-by: Clang Static Analyzer >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> --- >> block/qcow2-bitmap.c | 1 - >> 1 file changed, 1 deletion(-) >> >> diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c >> index 3e8735a20d..fe72df5057 100644 >> --- a/block/qcow2-bitmap.c >> +++ b/block/qcow2-bitmap.c >> @@ -254,7 +254,6 @@ static int free_bitmap_clusters(BlockDriverState *bs, >> Qcow2BitmapTable *tb) >> >> ret = bitmap_table_load(bs, tb, &bitmap_table); >> if (ret < 0) { >> - assert(bitmap_table == NULL); > > Rather, we should fix bitmap_table_load() to ensure that bitmap_table is > always assigned, even on error.
I think it's even better to initialize bitmap_table to NULL in free_bitmap_clusters, as all other callers do. Paolo