mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 23:07:44 +00:00
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.
This commit is contained in:
parent
4d3d3e475f
commit
6977fd95bf
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user