From: Michal Privoznik Date: Fri, 3 Feb 2017 16:23:10 +0000 (+0100) Subject: qemuDomainNamespaceSetupDisk: Simplify disk check X-Git-Tag: CVE-2017-2635~164 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7feabbfdc63757fd0a8c3e1995df092c3c58481;p=thirdparty%2Flibvirt.git qemuDomainNamespaceSetupDisk: Simplify disk check Firstly, instead of checking for next->path the virStorageSourceIsEmpty() function should be used which also takes disk type into account. Secondly, not every disk source passed has the correct type set (due to our laziness). Therefore, instead of checking for virStorageSourceIsBlockLocal() and also S_ISBLK() the former can be refined to just virStorageSourceIsLocalStorage(). Signed-off-by: Michal Privoznik --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 9e34d73be8..d3f765605a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7912,7 +7912,8 @@ qemuDomainNamespaceSetupDisk(virQEMUDriverPtr driver, return 0; for (next = src; next; next = next->backingStore) { - if (!next->path || !virStorageSourceIsBlockLocal(src)) { + if (virStorageSourceIsEmpty(next) || + !virStorageSourceIsLocalStorage(next)) { /* Not creating device. Just continue. */ continue; } @@ -7923,12 +7924,8 @@ qemuDomainNamespaceSetupDisk(virQEMUDriverPtr driver, goto cleanup; } - if (!S_ISBLK(sb.st_mode)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Disk source %s must be a block device"), - next->path); - goto cleanup; - } + if (!S_ISBLK(sb.st_mode)) + continue; if (qemuDomainAttachDeviceMknod(driver, vm,