]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: new function virDomainNetDefClear
authorLaine Stump <laine@laine.org>
Tue, 21 Jun 2016 18:22:15 +0000 (14:22 -0400)
committerLaine Stump <laine@laine.org>
Sun, 26 Jun 2016 23:33:08 +0000 (19:33 -0400)
We need to clear these out without freeing the object completely.

src/conf/domain_conf.c
src/conf/domain_conf.h
src/libvirt_private.syms

index 87e14839cbdc764a58203dd65993a267e4733484..3a29aaeeb4f3a9bf474f2a47d8bd061a744d72bf 100644 (file)
@@ -1737,7 +1737,8 @@ virDomainActualNetDefFree(virDomainActualNetDefPtr def)
     VIR_FREE(def);
 }
 
-void virDomainNetDefFree(virDomainNetDefPtr def)
+void
+virDomainNetDefClear(virDomainNetDefPtr def)
 {
     size_t i;
 
@@ -1753,6 +1754,7 @@ void virDomainNetDefFree(virDomainNetDefPtr def)
 
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
         virDomainChrSourceDefFree(def->data.vhostuser);
+        def->data.vhostuser = NULL;
         break;
 
     case VIR_DOMAIN_NET_TYPE_SERVER:
@@ -1767,6 +1769,7 @@ void virDomainNetDefFree(virDomainNetDefPtr def)
         VIR_FREE(def->data.network.name);
         VIR_FREE(def->data.network.portgroup);
         virDomainActualNetDefFree(def->data.network.actual);
+        def->data.network.actual = NULL;
         break;
 
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
@@ -1811,10 +1814,19 @@ void virDomainNetDefFree(virDomainNetDefPtr def)
 
     VIR_FREE(def->filter);
     virNWFilterHashTableFree(def->filterparams);
+    def->filterparams = NULL;
 
     virNetDevBandwidthFree(def->bandwidth);
+    def->bandwidth = NULL;
     virNetDevVlanClear(&def->vlan);
+}
 
+void
+virDomainNetDefFree(virDomainNetDefPtr def)
+{
+    if (!def)
+        return;
+    virDomainNetDefClear(def);
     VIR_FREE(def);
 }
 
index 8529a78fa41cee03408f58847e370496977e6e66..b9dc174c63c2125374c5c85e43e5891d71f4e11e 100644 (file)
@@ -2492,6 +2492,7 @@ virDomainControllerDefPtr
 virDomainControllerDefNew(virDomainControllerType type);
 void virDomainFSDefFree(virDomainFSDefPtr def);
 void virDomainActualNetDefFree(virDomainActualNetDefPtr def);
+void virDomainNetDefClear(virDomainNetDefPtr def);
 void virDomainNetDefFree(virDomainNetDefPtr def);
 void virDomainSmartcardDefFree(virDomainSmartcardDefPtr def);
 void virDomainChrDefFree(virDomainChrDefPtr def);
index 5e4acc92702dca0764872e849d70c5a33696b98d..894000613e41e596c1b9604d7aec284798701e91 100644 (file)
@@ -372,6 +372,7 @@ virDomainMemoryFindInactiveByDef;
 virDomainMemoryInsert;
 virDomainMemoryRemove;
 virDomainNetAppendIPAddress;
+virDomainNetDefClear;
 virDomainNetDefFormat;
 virDomainNetDefFree;
 virDomainNetFind;