qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH 06/21] parallels: refactor path when we need to re-check imag


From: Denis V. Lunev
Subject: Re: [PATCH 06/21] parallels: refactor path when we need to re-check image in parallels_open
Date: Sun, 17 Sep 2023 15:04:07 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1

On 9/17/23 13:40, Mike Maslenkin wrote:
This patch generates a warning.

On Fri, Sep 15, 2023 at 9:41 PM Denis V. Lunev <den@openvz.org> wrote:
More conditions follows thus the check should be more scalable.

Signed-off-by: Denis V. Lunev <den@openvz.org>
---
  block/parallels.c | 19 ++++++++-----------
  1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/block/parallels.c b/block/parallels.c
index 8f223bfd89..aa29df9f77 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -1065,7 +1065,7 @@ static int parallels_open(BlockDriverState *bs, QDict 
*options, int flags,
      int ret, size, i;
      int64_t file_nb_sectors, sector;
      uint32_t data_start;
-    bool data_off_is_correct;
+    bool need_check = false;

      ret = parallels_opts_prealloc(bs, options, errp);
      if (ret < 0) {
@@ -1133,11 +1133,12 @@ static int parallels_open(BlockDriverState *bs, QDict 
*options, int flags,
      s->bat_bitmap = (uint32_t *)(s->header + 1);

      if (le32_to_cpu(ph.inuse) == HEADER_INUSE_MAGIC) {
-        s->header_unclean = true;
+        need_check = s->header_unclean = true;
      }

-    data_off_is_correct = parallels_test_data_off(s, file_nb_sectors,
-                                                  &data_start);
+    need_check = need_check ||
+                 !parallels_test_data_off(s, file_nb_sectors, &data_start);
+
../block/parallels.c:1139:18: warning: variable 'data_start' is used
uninitialized whenever '||' condition is true
[-Wsometimes-uninitialized]
     need_check = need_check ||
                  ^~~~~~~~~~
../block/parallels.c:1142:21: note: uninitialized use occurs here
     s->data_start = data_start;
                     ^~~~~~~~~~
../block/parallels.c:1139:18: note: remove the '||' if its condition
is always false
     need_check = need_check ||
                  ^~~~~~~~~~~~~
../block/parallels.c:1067:24: note: initialize the variable
'data_start' to silence this warning
     uint32_t data_start;
                        ^
                         = 0
1 warning generated.


Regards,
Mike.
wow! That is pretty much correct!

What compiler/OS you are using :)

Den



reply via email to

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