From 6977fd95bfdf366b92c59203106a6eb762ff2a33 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 8 Sep 2011 10:10:14 +0100 Subject: [PATCH] blockinfo: fix qemu regression in handling disk name 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 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 1925ba5236..b94d1c4838 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,19 @@ 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]; + if (!disk->src) { + qemuReportError(VIR_ERR_INVALID_ARG, + _("disk %s does not currently have a source assigned"), + path); + goto cleanup; + } + path = disk->src; /* The path is correct, now try to open it and get its size. */ fd = open(path, O_RDONLY); -- GitLab