qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH V8 4/4] blockdev: Add infinite loop check in drive_i


From: Xu Wang
Subject: [Qemu-devel] [PATCH V8 4/4] blockdev: Add infinite loop check in drive_init()
Date: Fri, 15 Nov 2013 01:37:23 -0500

Check the backing file for a loop during image boot, to avoid a lack or
response or segfault.

Signed-off-by: Xu Wang <address@hidden>
---
 blockdev.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/blockdev.c b/blockdev.c
index b260477..60a3c93 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -510,6 +510,14 @@ static DriveInfo *blockdev_init(QDict *bs_opts,
 
     bdrv_flags |= ro ? 0 : BDRV_O_RDWR;
 
+    /* Add backing file loop check */
+    if (!bdrv_backing_chain_okay(file, drv ? drv->format_name : NULL,
+                                 NULL, &error)) {
+        error_setg(errp, "drive_init: backing file loop check failed. %s",
+                   error_get_pretty(error));
+        goto err;
+    }
+
     QINCREF(bs_opts);
     ret = bdrv_open(dinfo->bdrv, file, bs_opts, bdrv_flags, drv, &error);
 
-- 
1.8.1.4




reply via email to

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