block: Set backing_hd to NULL after deleting it
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Sat, 17 Apr 2010 09:49:06 +0000 (10:49 +0100)
committerKevin Wolf <kwolf@redhat.com>
Mon, 3 May 2010 08:07:31 +0000 (10:07 +0200)
It is safer to set backing_hd to NULL after deleting it so that any use
after deletion is obvious during development.  Happy segfaulting!

This patch should be applied after Kevin Wolf's "vmdk: Convert to
bdrv_open" so that vmdk does not segfault on close.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c

diff --git a/block.c b/block.c
index 56835afc567262fbaf88fc5ce692c886f74e6f41..b31835517578fdb85fea6117b7b0800f09af4f86 100644 (file)
--- a/block.c
+++ b/block.c
@@ -589,8 +589,10 @@ unlink_and_fail:
 void bdrv_close(BlockDriverState *bs)
 {
     if (bs->drv) {
-        if (bs->backing_hd)
+        if (bs->backing_hd) {
             bdrv_delete(bs->backing_hd);
+            bs->backing_hd = NULL;
+        }
         bs->drv->bdrv_close(bs);
         qemu_free(bs->opaque);
 #ifdef _WIN32