On 01.09.2015 16:52, Matthias Bolte wrote:
---
src/vmx/vmx.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index ba4d046..9d1574f 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2178,8 +2178,9 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt,
virConfPtr con
(*def)->transient = STRCASEEQ(mode,
"independent-nonpersistent");
} else if (virFileHasSuffix(fileName, ".iso") ||
- STRCASEEQ(deviceType, "atapi-cdrom") ||
- STRCASEEQ(deviceType, "cdrom-raw")) {
+ (deviceType &&
+ (STRCASEEQ(deviceType, "atapi-cdrom") ||
+ STRCASEEQ(deviceType, "cdrom-raw")))) {
/*
* This function was called in order to parse a harddisk device,
* but .iso files, 'atapi-cdrom', and 'cdrom-raw' devices
are for
@@ -2199,13 +2200,12 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt,
virConfPtr con
if (virFileHasSuffix(fileName, ".iso")) {
char *tmp;
- if (deviceType != NULL) {
- if (STRCASENEQ(deviceType, "cdrom-image")) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Expecting VMX entry '%s' to be
'cdrom-image' "
- "but found '%s'"),
deviceType_name, deviceType);
- goto cleanup;
- }
+ if (deviceType && STRCASENEQ(deviceType, "cdrom-image"))
{
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Expecting VMX entry '%s' to be
'cdrom-image' "
+ "but found '%s'"), deviceType_name,
+ deviceType ? deviceType : "unknown");
The control can get here iff deviceType != NULL.
+ goto cleanup;
}
virDomainDiskSetType(*def, VIR_STORAGE_TYPE_FILE);
@@ -2224,7 +2224,7 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt,
virConfPtr con
* handle it.
*/
goto ignore;
- } else if (STRCASEEQ(deviceType, "atapi-cdrom")) {
+ } else if (deviceType && STRCASEEQ(deviceType, "atapi-cdrom"))
{
virDomainDiskSetType(*def, VIR_STORAGE_TYPE_BLOCK);
if (STRCASEEQ(fileName, "auto detect")) {
@@ -2233,7 +2233,7 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt,
virConfPtr con
} else if (virDomainDiskSetSource(*def, fileName) < 0) {
goto cleanup;
}
- } else if (STRCASEEQ(deviceType, "cdrom-raw")) {
+ } else if (deviceType && STRCASEEQ(deviceType, "cdrom-raw"))
{
/* Raw access CD-ROMs actually are device='lun' */
(*def)->device = VIR_DOMAIN_DISK_DEVICE_LUN;
virDomainDiskSetType(*def, VIR_STORAGE_TYPE_BLOCK);
Michal