qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] migration/block-dirty-bitmap: fix uninitialized variable


From: Max Reitz
Subject: Re: [PATCH v2] migration/block-dirty-bitmap: fix uninitialized variable warning
Date: Tue, 13 Oct 2020 16:47:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 13.10.20 14:33, Chen Qun wrote:
> A default value is provided for the variable 'bitmap_name' to avoid compiler 
> warning.
> 
> The compiler show warning:
> migration/block-dirty-bitmap.c:1090:13: warning: ‘bitmap_name’
> may be used uninitialized in this function [-Wmaybe-uninitialized]
>        g_strlcpy(s->bitmap_name, bitmap_name, sizeof(s->bitmap_name));
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
> ---
> Cc: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> Cc: Laurent Vivier <laurent@vivier.eu>
> Cc: Li Qiang <liq3ea@gmail.com>
> ---
>  migration/block-dirty-bitmap.c | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)

No objections, semantically, but...

> diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
> index 5bef793ac0..bcb79c04ce 100644
> --- a/migration/block-dirty-bitmap.c
> +++ b/migration/block-dirty-bitmap.c
> @@ -1064,15 +1064,13 @@ static int dirty_bitmap_load_header(QEMUFile *f, 
> DBMLoadState *s,
>      assert(nothing || s->cancelled || !!alias_map == !!bitmap_alias_map);
>  
>      if (s->flags & DIRTY_BITMAP_MIG_FLAG_BITMAP_NAME) {
> -        const char *bitmap_name;
> -
>          if (!qemu_get_counted_string(f, s->bitmap_alias)) {
>              error_report("Unable to read bitmap alias string");
>              return -EINVAL;
>          }
>  
> -        if (!s->cancelled) {
> -            if (bitmap_alias_map) {
> +        const char *bitmap_name = s->bitmap_alias;

qemu’s coding style mandates declarations to be placed at the beginning
of their block, so the declaration has to stay where it is.  (Putting
the assignment here looks reasonable.)

> +        if (!s->cancelled && bitmap_alias_map) {
>                  bitmap_name = g_hash_table_lookup(bitmap_alias_map,
>                                                    s->bitmap_alias);

This block of course needs to be re-indented.

Max

>                  if (!bitmap_name) {
> @@ -1081,9 +1079,6 @@ static int dirty_bitmap_load_header(QEMUFile *f, 
> DBMLoadState *s,
>                                   s->bs->node_name, s->node_alias);
>                      cancel_incoming_locked(s);
>                  }
> -            } else {
> -                bitmap_name = s->bitmap_alias;
> -            }
>          }
>  
>          if (!s->cancelled) {
> 


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]