conf: Report error for unknown shmem ioeventfd value

https://bugzilla.redhat.com/show_bug.cgi?id=1220265

Passing the return value to an enum directly is not safe.  Fix this by
comparing the true integer result of virTristateSwitchTypeFromString().

Signed-off-by: Luyao Huang <lhuang@redhat.com>
This commit is contained in:
Luyao Huang 2015-05-11 20:59:37 +08:00 committed by Martin Kletzander
parent 076dd37995
commit c49b9032a2
1 changed files with 10 additions and 6 deletions

View File

@ -10829,12 +10829,16 @@ virDomainShmemDefParseXML(xmlNodePtr node,
}
VIR_FREE(tmp);
if ((tmp = virXMLPropString(msi, "ioeventfd")) &&
(def->msi.ioeventfd = virTristateSwitchTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid msi ioeventfd setting for shmem: '%s'"),
tmp);
goto cleanup;
if ((tmp = virXMLPropString(msi, "ioeventfd"))) {
int val;
if ((val = virTristateSwitchTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid msi ioeventfd setting for shmem: '%s'"),
tmp);
goto cleanup;
}
def->msi.ioeventfd = val;
}
VIR_FREE(tmp);
}