block: Fix anonymous BBs in blk_root_inactivate()
authorKevin Wolf <kwolf@redhat.com>
Mon, 22 May 2017 15:03:39 +0000 (17:03 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 9 Jun 2017 09:45:03 +0000 (11:45 +0200)
blk->name isn't an array, but a pointer that can be NULL. Checking for
an anonymous BB must involve a NULL check first, otherwise we get
crashes.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
block/block-backend.c

index f3a60081a7658bd60adc76a5b2b53ec06953876e..7d7f3697d1aed6ce9d03f9f6cbaf9f2392bda6d0 100644 (file)
@@ -168,7 +168,7 @@ static int blk_root_inactivate(BdrvChild *child)
      * this point because the VM is stopped) and unattached monitor-owned
      * BlockBackends. If there is still any other user like a block job, then
      * we simply can't inactivate the image. */
-    if (!blk->dev && !blk->name[0]) {
+    if (!blk->dev && !blk_name(blk)[0]) {
         return -EPERM;
     }