[libvirt] [PATCHv3 14/27] fix fallout in vbox driver

Peter Krempa pkrempa at redhat.com
Mon Mar 11 15:06:25 UTC 2013


---
 src/vbox/vbox_tmpl.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index cd88579..aa7466b 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -193,6 +193,7 @@ typedef struct {
     unsigned long version;

     virCapsPtr caps;
+    virDomainXMLConfPtr xmlconf;

     IVirtualBox *vboxObj;
     ISession *vboxSession;
@@ -850,6 +851,13 @@ static int vboxDefaultConsoleType(const char *ostype ATTRIBUTE_UNUSED,
 }


+static virDomainXMLConfPtr
+vboxXMLConfInit(void)
+{
+    return virDomainXMLConfNew(NULL, NULL);
+}
+
+
 static virCapsPtr vboxCapsInit(void)
 {
     virCapsPtr caps;
@@ -978,6 +986,7 @@ static void vboxUninitialize(vboxGlobalData *data) {
         data->pFuncs->pfnComUninitialize();

     virObjectUnref(data->caps);
+    virObjectUnref(data->xmlconf);
 #if VBOX_API_VERSION == 2002
     /* No domainEventCallbacks in 2.2.* version */
 #else  /* !(VBOX_API_VERSION == 2002) */
@@ -1036,7 +1045,8 @@ static virDrvOpenStatus vboxOpen(virConnectPtr conn,

     if (!(data->caps = vboxCapsInit()) ||
         vboxInitialize(data) < 0 ||
-        vboxExtractVersion(data) < 0) {
+        vboxExtractVersion(data) < 0 ||
+        !(data->xmlconf = vboxXMLConfInit())) {
         vboxUninitialize(data);
         return VIR_DRV_OPEN_ERROR;
     }
@@ -5042,8 +5052,8 @@ static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml) {
 #endif
     nsresult rc;

-    if (!(def = virDomainDefParseString(data->caps, xml,
-                                        1 << VIR_DOMAIN_VIRT_VBOX,
+    if (!(def = virDomainDefParseString(data->caps, data->xmlconf,
+                                        xml, 1 << VIR_DOMAIN_VIRT_VBOX,
                                         VIR_DOMAIN_XML_INACTIVE))) {
         goto cleanup;
     }
@@ -5921,7 +5931,8 @@ vboxDomainSnapshotCreateXML(virDomainPtr dom,
     /* VBox has no snapshot metadata, so this flag is trivial.  */
     virCheckFlags(VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA, NULL);

-    if (!(def = virDomainSnapshotDefParseString(xmlDesc, NULL, 0, 0)))
+    if (!(def = virDomainSnapshotDefParseString(xmlDesc, data->caps,
+                                                data->xmlconf, 0, 0)))
         goto cleanup;

     if (def->ndisks) {
-- 
1.8.1.5




More information about the libvir-list mailing list