ae23c9
From c24b1c565318bada6133e9489d9fcf8f589da56f Mon Sep 17 00:00:00 2001
ae23c9
From: John Snow <jsnow@redhat.com>
ae23c9
Date: Wed, 18 Jul 2018 22:55:07 +0200
ae23c9
Subject: [PATCH 249/268] nbd/server: Silence gcc false positive
ae23c9
ae23c9
RH-Author: John Snow <jsnow@redhat.com>
ae23c9
Message-id: <20180718225511.14878-32-jsnow@redhat.com>
ae23c9
Patchwork-id: 81425
ae23c9
O-Subject: [RHEL-7.6 qemu-kvm-rhev PATCH 31/35] nbd/server: Silence gcc false positive
ae23c9
Bugzilla: 1207657
ae23c9
RH-Acked-by: Eric Blake <eblake@redhat.com>
ae23c9
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
ae23c9
RH-Acked-by: Fam Zheng <famz@redhat.com>
ae23c9
ae23c9
From: Eric Blake <eblake@redhat.com>
ae23c9
ae23c9
The code has a while() loop that always initialized 'end', and
ae23c9
the loop always executes at least once (as evidenced by the assert()
ae23c9
just prior to the loop).  But some versions of gcc still complain
ae23c9
that 'end' is used uninitialized, so silence them.
ae23c9
ae23c9
Signed-off-by: Eric Blake <eblake@redhat.com>
ae23c9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
ae23c9
Message-id: 20180622125814.345274-1-eblake@redhat.com
ae23c9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
ae23c9
(cherry picked from commit 45eb6fb6cea28cdc937764aac6585751047bb294)
ae23c9
Signed-off-by: John Snow <jsnow@redhat.com>
ae23c9
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
ae23c9
---
ae23c9
 nbd/server.c | 3 ++-
ae23c9
 1 file changed, 2 insertions(+), 1 deletion(-)
ae23c9
ae23c9
diff --git a/nbd/server.c b/nbd/server.c
ae23c9
index 2746046..50ac8bf 100644
ae23c9
--- a/nbd/server.c
ae23c9
+++ b/nbd/server.c
ae23c9
@@ -1937,7 +1937,7 @@ static unsigned int bitmap_to_extents(BdrvDirtyBitmap *bitmap, uint64_t offset,
ae23c9
                                       unsigned int nb_extents,
ae23c9
                                       bool dont_fragment)
ae23c9
 {
ae23c9
-    uint64_t begin = offset, end;
ae23c9
+    uint64_t begin = offset, end = offset;
ae23c9
     uint64_t overall_end = offset + *length;
ae23c9
     unsigned int i = 0;
ae23c9
     BdrvDirtyBitmapIter *it;
ae23c9
@@ -1977,6 +1977,7 @@ static unsigned int bitmap_to_extents(BdrvDirtyBitmap *bitmap, uint64_t offset,
ae23c9
 
ae23c9
     bdrv_dirty_bitmap_unlock(bitmap);
ae23c9
 
ae23c9
+    assert(offset > end);
ae23c9
     *length = end - offset;
ae23c9
     return i;
ae23c9
 }
ae23c9
-- 
ae23c9
1.8.3.1
ae23c9