]> git.proxmox.com Git - qemu.git/blobdiff - block.c
block: Fail gracefully when using a format driver on protocol level
[qemu.git] / block.c
diff --git a/block.c b/block.c
index 4ad663d3fae8e75e4c3eeddd5f6fc516bc8b3554..bea47c47555dcec297193d6e2ccc6e05d2f795ed 100644 (file)
--- a/block.c
+++ b/block.c
@@ -718,6 +718,13 @@ static int bdrv_open_common(BlockDriverState *bs, BlockDriverState *file,
         assert(drv->bdrv_parse_filename || filename != NULL);
         ret = drv->bdrv_file_open(bs, filename, options, open_flags);
     } else {
+        if (file == NULL) {
+            qerror_report(ERROR_CLASS_GENERIC_ERROR, "Can't use '%s' as a "
+                          "block driver for the protocol level",
+                          drv->format_name);
+            ret = -EINVAL;
+            goto free_and_fail;
+        }
         assert(file != NULL);
         bs->file = file;
         ret = drv->bdrv_open(bs, options, open_flags);