Need to really handle the error on the get_dominfo_from_xml() call
Need to be sure to free(xml) before returning
---
libxkutil/device_parsing.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/libxkutil/device_parsing.c b/libxkutil/device_parsing.c
index 845a953..264d4cc 100644
--- a/libxkutil/device_parsing.c
+++ b/libxkutil/device_parsing.c
@@ -1246,7 +1246,7 @@ int get_dominfo_from_xml(const char *xml, struct domain **dominfo)
int get_dominfo(virDomainPtr dom, struct domain **dominfo)
{
char *xml;
- int ret;
+ int ret = 0;
int start;
xml = virDomainGetXMLDesc(dom,
VIR_DOMAIN_XML_INACTIVE | VIR_DOMAIN_XML_SECURE);
@@ -1256,18 +1256,17 @@ int get_dominfo(virDomainPtr dom, struct domain **dominfo)
return 0;
}
- ret = get_dominfo_from_xml(xml, dominfo);
- if (ret != 1) {
+ if (get_dominfo_from_xml(xml, dominfo) == 0) {
CU_DEBUG("Failed to translate xml into struct domain");
goto out;
}
if (virDomainGetAutostart(dom, &start) != 0) {
CU_DEBUG("Failed to get dom autostart with libvirt API.");
- ret = 0;
goto out;
}
(*dominfo)->autostrt = start;
+ ret = 1;
out:
free(xml);
--
1.8.1.4