[libvirt] [PATCHv2] blockinfo: fix qemu regression in handling disk name

Eric Blake eblake at redhat.com
Thu Sep 8 09:12:30 UTC 2011


Regression introduced in commit 89b6284fd, due to an incorrect
conversion to the new means of converting disk names back to
the correct object.

* src/qemu/qemu_driver.c (qemuDomainGetBlockInfo): Avoid NULL deref.
---
 src/qemu/qemu_driver.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 1925ba5..f73270f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7755,8 +7755,8 @@ static int qemuDomainGetBlockInfo(virDomainPtr dom,
     virStorageFileMetadata *meta = NULL;
     virDomainDiskDefPtr disk = NULL;
     struct stat sb;
+    int i;
     int format;
-    const char *actual;

     virCheckFlags(0, -1);

@@ -7778,12 +7778,12 @@ static int qemuDomainGetBlockInfo(virDomainPtr dom,
     }

     /* Check the path belongs to this domain. */
-    if (!(actual = virDomainDiskPathByName(vm->def, path))) {
+    if ((i = virDomainDiskIndexByName(vm->def, path, false)) < 0) {
         qemuReportError(VIR_ERR_INVALID_ARG,
                         _("invalid path %s not assigned to domain"), path);
         goto cleanup;
     }
-    path = actual;
+    disk = vm->def->disks[i];

     /* The path is correct, now try to open it and get its size. */
     fd = open(path, O_RDONLY);
-- 
1.7.4.4




More information about the libvir-list mailing list