mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: Move disk driver name validation into disk validation callback
There were two places where we'd check this independently. Move it to the disk definition validation callback. This also fixes possible use of NULL in a printf for network storage. Signed-off-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
@@ -9719,18 +9719,6 @@ qemuBuildCommandLineValidate(virQEMUDriverPtr driver,
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < def->ndisks; i++) {
|
||||
virDomainDiskDefPtr disk = def->disks[i];
|
||||
|
||||
if (disk->src->driverName != NULL &&
|
||||
STRNEQ(disk->src->driverName, "qemu")) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported driver name '%s' for disk '%s'"),
|
||||
disk->src->driverName, disk->src->path);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -4142,6 +4142,7 @@ static int
|
||||
qemuDomainDeviceDefValidateDisk(const virDomainDiskDef *disk,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
const char *driverName = virDomainDiskGetDriver(disk);
|
||||
virStorageSourcePtr n;
|
||||
|
||||
if (disk->src->shared && !disk->src->readonly) {
|
||||
@@ -4160,6 +4161,13 @@ qemuDomainDeviceDefValidateDisk(const virDomainDiskDef *disk,
|
||||
}
|
||||
}
|
||||
|
||||
if (driverName && STRNEQ(driverName, "qemu")) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported driver name '%s' for disk '%s'"),
|
||||
driverName, disk->dst);
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (n = disk->src; virStorageSourceIsBacking(n); n = n->backingStore) {
|
||||
if (qemuDomainValidateStorageSource(n, qemuCaps) < 0)
|
||||
return -1;
|
||||
|
||||
@@ -699,13 +699,6 @@ qemuDomainAttachDeviceDiskLive(virQEMUDriverPtr driver,
|
||||
virDomainDiskDefPtr orig_disk = NULL;
|
||||
int ret = -1;
|
||||
|
||||
if (STRNEQ_NULLABLE(virDomainDiskGetDriver(disk), "qemu")) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported driver name '%s' for disk '%s'"),
|
||||
virDomainDiskGetDriver(disk), disk->dst);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virDomainDiskTranslateSourcePool(disk) < 0)
|
||||
goto cleanup;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user