mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
domain_conf: Resolve resource leaks found by Valgrind
Fix various resource leaks discovered while parsing through Valgrind output
This commit is contained in:
@@ -7604,6 +7604,7 @@ virDomainVideoDefParseXML(const xmlNodePtr node,
|
|||||||
VIR_FREE(ram);
|
VIR_FREE(ram);
|
||||||
VIR_FREE(vram);
|
VIR_FREE(vram);
|
||||||
VIR_FREE(heads);
|
VIR_FREE(heads);
|
||||||
|
VIR_FREE(primary);
|
||||||
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
@@ -9594,6 +9595,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VIR_FREE(tmp);
|
||||||
def->hyperv_features[feature] = value;
|
def->hyperv_features[feature] = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -9922,6 +9924,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) {
|
if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) {
|
||||||
if (controller->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE) {
|
if (controller->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE) {
|
||||||
if (usb_other || usb_none) {
|
if (usb_other || usb_none) {
|
||||||
|
virDomainControllerDefFree(controller);
|
||||||
virReportError(VIR_ERR_XML_DETAIL, "%s",
|
virReportError(VIR_ERR_XML_DETAIL, "%s",
|
||||||
_("Can't add another USB controller: "
|
_("Can't add another USB controller: "
|
||||||
"USB is disabled for this domain"));
|
"USB is disabled for this domain"));
|
||||||
@@ -9930,6 +9933,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
usb_none = true;
|
usb_none = true;
|
||||||
} else {
|
} else {
|
||||||
if (usb_none) {
|
if (usb_none) {
|
||||||
|
virDomainControllerDefFree(controller);
|
||||||
virReportError(VIR_ERR_XML_DETAIL, "%s",
|
virReportError(VIR_ERR_XML_DETAIL, "%s",
|
||||||
_("Can't add another USB controller: "
|
_("Can't add another USB controller: "
|
||||||
"USB is disabled for this domain"));
|
"USB is disabled for this domain"));
|
||||||
@@ -10227,6 +10231,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
|
|
||||||
/* Check if USB bus is required */
|
/* Check if USB bus is required */
|
||||||
if (input->bus == VIR_DOMAIN_INPUT_BUS_USB && usb_none) {
|
if (input->bus == VIR_DOMAIN_INPUT_BUS_USB && usb_none) {
|
||||||
|
virDomainInputDefFree(input);
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("Can't add USB input device. "
|
_("Can't add USB input device. "
|
||||||
"USB bus is disabled"));
|
"USB bus is disabled"));
|
||||||
@@ -10324,6 +10329,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
|
|
||||||
if (video->primary) {
|
if (video->primary) {
|
||||||
if (primaryVideo) {
|
if (primaryVideo) {
|
||||||
|
virDomainVideoDefFree(video);
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("Only one primary video device is supported"));
|
_("Only one primary video device is supported"));
|
||||||
goto error;
|
goto error;
|
||||||
@@ -10335,8 +10341,10 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
if (VIR_INSERT_ELEMENT_INPLACE(def->videos,
|
if (VIR_INSERT_ELEMENT_INPLACE(def->videos,
|
||||||
ii,
|
ii,
|
||||||
def->nvideos,
|
def->nvideos,
|
||||||
video) < 0)
|
video) < 0) {
|
||||||
|
virDomainVideoDefFree(video);
|
||||||
goto error;
|
goto error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
VIR_FREE(nodes);
|
VIR_FREE(nodes);
|
||||||
|
|
||||||
@@ -10452,6 +10460,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (hub->type == VIR_DOMAIN_HUB_TYPE_USB && usb_none) {
|
if (hub->type == VIR_DOMAIN_HUB_TYPE_USB && usb_none) {
|
||||||
|
virDomainHubDefFree(hub);
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("Can't add USB hub: "
|
_("Can't add USB hub: "
|
||||||
"USB is disabled for this domain"));
|
"USB is disabled for this domain"));
|
||||||
|
|||||||
Reference in New Issue
Block a user