diff mbox

block: Check bdrv_getlength() return value in bdrv_make_zero()

Message ID 1397653753-23237-1-git-send-email-kwolf@redhat.com
State New
Headers show

Commit Message

Kevin Wolf April 16, 2014, 1:09 p.m. UTC
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Max Reitz April 16, 2014, 10:15 p.m. UTC | #1
On 16.04.2014 15:09, Kevin Wolf wrote:
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>   block.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)

Reviewed-by: Max Reitz <mreitz@redhat.com>
diff mbox

Patch

diff --git a/block.c b/block.c
index d268ece..8510ba2 100644
--- a/block.c
+++ b/block.c
@@ -2757,10 +2757,16 @@  int bdrv_write_zeroes(BlockDriverState *bs, int64_t sector_num,
  */
 int bdrv_make_zero(BlockDriverState *bs, BdrvRequestFlags flags)
 {
-    int64_t target_size = bdrv_getlength(bs) / BDRV_SECTOR_SIZE;
+    int64_t target_size;
     int64_t ret, nb_sectors, sector_num = 0;
     int n;
 
+    target_size = bdrv_getlength(bs);
+    if (target_size < 0) {
+        return target_size;
+    }
+    target_size /= BDRV_SECTOR_SIZE;
+
     for (;;) {
         nb_sectors = target_size - sector_num;
         if (nb_sectors <= 0) {