From: Laine Stump Date: Tue, 21 Jun 2016 18:22:15 +0000 (-0400) Subject: conf: new function virDomainNetDefClear X-Git-Tag: v2.0.0-rc2~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7cfbaad189aa635112770cffe70e2bfb2be288c7;p=thirdparty%2Flibvirt.git conf: new function virDomainNetDefClear We need to clear these out without freeing the object completely. --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 87e14839cb..3a29aaeeb4 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -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); } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 8529a78fa4..b9dc174c63 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -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); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 5e4acc9270..894000613e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -372,6 +372,7 @@ virDomainMemoryFindInactiveByDef; virDomainMemoryInsert; virDomainMemoryRemove; virDomainNetAppendIPAddress; +virDomainNetDefClear; virDomainNetDefFormat; virDomainNetDefFree; virDomainNetFind;