Message ID | 20170724182751.18261-7-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
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é <f4bug@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.
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é <f4bug@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
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); return ret; }
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é <f4bug@amsat.org> --- block/qcow2-bitmap.c | 1 - 1 file changed, 1 deletion(-)