mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
conf: Enforce scheduler name when parsing XML
We require the scheduler name attribute in the schemas but the code would actually be fine when it was omitted. Make it mandatory. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1234729
This commit is contained in:
parent
1310b1358c
commit
dc7339fc4f
@ -14153,32 +14153,35 @@ virDomainThreadSchedParse(xmlNodePtr node,
|
||||
}
|
||||
VIR_FREE(tmp);
|
||||
|
||||
tmp = virXMLPropString(node, "scheduler");
|
||||
if (tmp) {
|
||||
if ((pol = virProcessSchedPolicyTypeFromString(tmp)) <= 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Invalid scheduler attribute: '%s'"),
|
||||
tmp);
|
||||
if (!(tmp = virXMLPropString(node, "scheduler"))) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("Missing scheduler attribute"));
|
||||
goto error;
|
||||
}
|
||||
|
||||
if ((pol = virProcessSchedPolicyTypeFromString(tmp)) <= 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Invalid scheduler attribute: '%s'"),
|
||||
tmp);
|
||||
goto error;
|
||||
}
|
||||
sp->policy = pol;
|
||||
|
||||
VIR_FREE(tmp);
|
||||
if (sp->policy == VIR_PROC_POLICY_FIFO ||
|
||||
sp->policy == VIR_PROC_POLICY_RR) {
|
||||
tmp = virXMLPropString(node, "priority");
|
||||
if (!tmp) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Missing scheduler priority"));
|
||||
goto error;
|
||||
}
|
||||
sp->policy = pol;
|
||||
|
||||
VIR_FREE(tmp);
|
||||
if (sp->policy == VIR_PROC_POLICY_FIFO ||
|
||||
sp->policy == VIR_PROC_POLICY_RR) {
|
||||
tmp = virXMLPropString(node, "priority");
|
||||
if (!tmp) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Missing scheduler priority"));
|
||||
goto error;
|
||||
}
|
||||
if (virStrToLong_i(tmp, NULL, 10, &sp->priority) < 0) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Invalid value for element priority"));
|
||||
goto error;
|
||||
}
|
||||
VIR_FREE(tmp);
|
||||
if (virStrToLong_i(tmp, NULL, 10, &sp->priority) < 0) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Invalid value for element priority"));
|
||||
goto error;
|
||||
}
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user