Same as virDomainDeviceInfo itself, any struct that embeds it needs to be initialized properly before use; however, none of the structs in question even had a proper allocation function defined. Implement an allocation function for all structs embedding a virDomainDeviceInfo and use them instead of plain VIR_ALLOC() everywhere. Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> --- src/bhyve/bhyve_parse_command.c | 4 +- src/conf/domain_conf.c | 280 +++++++++++++++++++++++++++++++--------- src/conf/domain_conf.h | 15 +++ src/libvirt_private.syms | 11 ++ src/openvz/openvz_conf.c | 2 +- src/qemu/qemu_command.c | 12 +- src/qemu/qemu_domain.c | 11 +- src/qemu/qemu_domain_address.c | 2 +- src/qemu/qemu_hotplug.c | 5 +- src/qemu/qemu_parse_command.c | 27 ++-- src/vbox/vbox_common.c | 12 +- src/vmx/vmx.c | 2 +- src/vz/vz_sdk.c | 6 +- src/xen/xen_driver.c | 2 +- src/xenapi/xenapi_driver.c | 2 +- src/xenconfig/xen_common.c | 2 +- src/xenconfig/xen_sxpr.c | 8 +- src/xenconfig/xen_xl.c | 2 +- src/xenconfig/xen_xm.c | 2 +- 19 files changed, 303 insertions(+), 104 deletions(-) diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_command.c index fcaaed2..b9e8bc6 100644 --- a/src/bhyve/bhyve_parse_command.c +++ b/src/bhyve/bhyve_parse_command.c @@ -432,7 +432,7 @@ bhyveParsePCIDisk(virDomainDefPtr def, int idx = -1; virDomainDiskDefPtr disk = NULL; - if (VIR_ALLOC(disk) < 0) + if (!(disk = virDomainDiskDefNew(NULL))) goto cleanup; if (VIR_ALLOC(disk->src) < 0) goto error; @@ -505,7 +505,7 @@ bhyveParsePCINet(virDomainDefPtr def, const char *separator = NULL; const char *mac = NULL; - if (VIR_ALLOC(net) < 0) + if (!(net = virDomainNetDefNew())) goto cleanup; /* As we only support interface type='bridge' and cannot diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 11c4627..055fde9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1389,6 +1389,17 @@ void virDomainGraphicsDefFree(virDomainGraphicsDefPtr def) VIR_FREE(def); } +virDomainInputDefPtr +virDomainInputDefNew(void) +{ + virDomainInputDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainInputDefFree(virDomainInputDefPtr def) { if (!def) @@ -2021,6 +2032,17 @@ virDomainNetDefClear(virDomainNetDefPtr def) virNetDevVlanClear(&def->vlan); } +virDomainNetDefPtr +virDomainNetDefNew(void) +{ + virDomainNetDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainNetDefFree(virDomainNetDefPtr def) { @@ -2248,6 +2270,17 @@ void virDomainChrDefFree(virDomainChrDefPtr def) VIR_FREE(def); } +virDomainSmartcardDefPtr +virDomainSmartcardDefNew(void) +{ + virDomainSmartcardDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainSmartcardDefFree(virDomainSmartcardDefPtr def) { size_t i; @@ -2285,6 +2318,17 @@ void virDomainSoundCodecDefFree(virDomainSoundCodecDefPtr def) VIR_FREE(def); } +virDomainSoundDefPtr +virDomainSoundDefNew(void) +{ + virDomainSoundDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainSoundDefFree(virDomainSoundDefPtr def) { if (!def) @@ -2300,6 +2344,17 @@ void virDomainSoundDefFree(virDomainSoundDefPtr def) VIR_FREE(def); } +virDomainMemballoonDefPtr +virDomainMemballoonDefNew(void) +{ + virDomainMemballoonDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainMemballoonDefFree(virDomainMemballoonDefPtr def) { if (!def) @@ -2311,6 +2366,17 @@ void virDomainMemballoonDefFree(virDomainMemballoonDefPtr def) VIR_FREE(def); } +virDomainNVRAMDefPtr +virDomainNVRAMDefNew(void) +{ + virDomainNVRAMDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainNVRAMDefFree(virDomainNVRAMDefPtr def) { if (!def) @@ -2321,6 +2387,17 @@ void virDomainNVRAMDefFree(virDomainNVRAMDefPtr def) VIR_FREE(def); } +virDomainWatchdogDefPtr +virDomainWatchdogDefNew(void) +{ + virDomainWatchdogDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainWatchdogDefFree(virDomainWatchdogDefPtr def) { if (!def) @@ -2331,6 +2408,50 @@ void virDomainWatchdogDefFree(virDomainWatchdogDefPtr def) VIR_FREE(def); } +virDomainRNGDefPtr +virDomainRNGDefNew(void) +{ + virDomainRNGDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + +void +virDomainRNGDefFree(virDomainRNGDefPtr def) +{ + if (!def) + return; + + switch ((virDomainRNGBackend) def->backend) { + case VIR_DOMAIN_RNG_BACKEND_RANDOM: + VIR_FREE(def->source.file); + break; + case VIR_DOMAIN_RNG_BACKEND_EGD: + virDomainChrSourceDefFree(def->source.chardev); + break; + case VIR_DOMAIN_RNG_BACKEND_LAST: + break; + } + + virDomainDeviceInfoClear(&def->info); + VIR_FREE(def->virtio); + VIR_FREE(def); +} + +virDomainShmemDefPtr +virDomainShmemDefNew(void) +{ + virDomainShmemDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainShmemDefFree(virDomainShmemDefPtr def) { if (!def) @@ -2342,6 +2463,17 @@ void virDomainShmemDefFree(virDomainShmemDefPtr def) VIR_FREE(def); } +virDomainVideoDefPtr +virDomainVideoDefNew(void) +{ + virDomainVideoDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainVideoDefFree(virDomainVideoDefPtr def) { if (!def) @@ -2457,6 +2589,17 @@ void virDomainHostdevDefClear(virDomainHostdevDefPtr def) def->privateData = NULL; } +virDomainTPMDefPtr +virDomainTPMDefNew(void) +{ + virDomainTPMDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainTPMDefFree(virDomainTPMDefPtr def) { if (!def) @@ -2489,6 +2632,17 @@ void virDomainHostdevDefFree(virDomainHostdevDefPtr def) VIR_FREE(def); } +virDomainHubDefPtr +virDomainHubDefNew(void) +{ + virDomainHubDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainHubDefFree(virDomainHubDefPtr def) { if (!def) @@ -2498,6 +2652,17 @@ void virDomainHubDefFree(virDomainHubDefPtr def) VIR_FREE(def); } +virDomainRedirdevDefPtr +virDomainRedirdevDefNew(void) +{ + virDomainRedirdevDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainRedirdevDefFree(virDomainRedirdevDefPtr def) { if (!def) @@ -2523,6 +2688,17 @@ void virDomainRedirFilterDefFree(virDomainRedirFilterDefPtr def) VIR_FREE(def); } +virDomainMemoryDefPtr +virDomainMemoryDefNew(void) +{ + virDomainMemoryDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainMemoryDefFree(virDomainMemoryDefPtr def) { if (!def) @@ -2733,6 +2909,17 @@ virDomainResourceDefFree(virDomainResourceDefPtr resource) VIR_FREE(resource); } +virDomainPanicDefPtr +virDomainPanicDefNew(void) +{ + virDomainPanicDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainPanicDefFree(virDomainPanicDefPtr panic) { @@ -9732,8 +9919,8 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr oldnode = ctxt->node; int rv, val; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainNetDefNew())) + goto error; ctxt->node = node; @@ -11198,8 +11385,8 @@ virDomainSmartcardDefParseXML(virDomainXMLOptionPtr xmlopt, virDomainSmartcardDefPtr def; size_t i; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainSmartcardDefNew())) + goto error; mode = virXMLPropString(node, "mode"); if (mode == NULL) { @@ -11344,8 +11531,8 @@ virDomainTPMDefParseXML(xmlNodePtr node, xmlNodePtr *backends = NULL; int nbackends; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainTPMDefNew())) + goto error; model = virXMLPropString(node, "model"); if (model != NULL && @@ -11425,8 +11612,8 @@ virDomainPanicDefParseXML(xmlNodePtr node, virDomainPanicDefPtr panic; char *model = NULL; - if (VIR_ALLOC(panic) < 0) - return NULL; + if (!(panic = virDomainPanicDefNew())) + goto error; if (virDomainDeviceInfoParseXML(node, NULL, &panic->info, flags) < 0) goto error; @@ -11462,8 +11649,8 @@ virDomainInputDefParseXML(const virDomainDef *dom, char *type = NULL; char *bus = NULL; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainInputDefNew())) + goto error; ctxt->node = node; @@ -11606,8 +11793,8 @@ virDomainHubDefParseXML(xmlNodePtr node, unsigned int flags) virDomainHubDefPtr def; char *type = NULL; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainHubDefNew())) + goto error; type = virXMLPropString(node, "type"); @@ -12708,8 +12895,8 @@ virDomainSoundDefParseXML(xmlNodePtr node, virDomainSoundDefPtr def; xmlNodePtr save = ctxt->node; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainSoundDefNew())) + goto error; ctxt->node = node; @@ -12777,8 +12964,8 @@ virDomainWatchdogDefParseXML(xmlNodePtr node, char *action = NULL; virDomainWatchdogDefPtr def; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainWatchdogDefNew())) + goto error; model = virXMLPropString(node, "model"); if (model == NULL) { @@ -12835,8 +13022,8 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr *backends = NULL; int nbackends; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainRNGDefNew())) + goto error; if (!(model = virXMLPropString(node, "model"))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("missing RNG device model")); @@ -12949,8 +13136,8 @@ virDomainMemballoonDefParseXML(xmlNodePtr node, xmlNodePtr save = ctxt->node; unsigned int period = 0; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainMemballoonDefNew())) + goto error; model = virXMLPropString(node, "model"); if (model == NULL) { @@ -13010,8 +13197,8 @@ virDomainNVRAMDefParseXML(xmlNodePtr node, { virDomainNVRAMDefPtr def; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainNVRAMDefNew())) + goto error; if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0) goto error; @@ -13034,9 +13221,8 @@ virDomainShmemDefParseXML(xmlNodePtr node, xmlNodePtr save = ctxt->node; xmlNodePtr server = NULL; - - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainShmemDefNew())) + goto error; ctxt->node = node; @@ -13550,8 +13736,8 @@ virDomainVideoDefParseXML(xmlNodePtr node, ctxt->node = node; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainVideoDefNew())) + goto error; cur = node->children; while (cur != NULL) { @@ -13789,8 +13975,8 @@ virDomainRedirdevDefParseXML(virDomainXMLOptionPtr xmlopt, char *bus = NULL, *type = NULL; int remaining; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainRedirdevDefNew())) + goto error; if (!(def->source = virDomainChrSourceDefNew(xmlopt))) goto error; @@ -14255,8 +14441,8 @@ virDomainMemoryDefParseXML(xmlNodePtr memdevNode, ctxt->node = memdevNode; - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def = virDomainMemoryDefNew())) + goto error; if (!(tmp = virXMLPropString(memdevNode, "model"))) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -16383,7 +16569,7 @@ virDomainDefAddController(virDomainDefPtr def, int type, int idx, int model) cont->model = model; if (VIR_APPEND_ELEMENT_COPY(def->controllers, def->ncontrollers, cont) < 0) { - VIR_FREE(cont); + virDomainControllerDefFree(cont); return NULL; } @@ -16477,14 +16663,14 @@ virDomainDefMaybeAddInput(virDomainDefPtr def, return 0; } - if (VIR_ALLOC(input) < 0) + if (!(input = virDomainInputDefNew())) return -1; input->type = type; input->bus = bus; if (VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) < 0) { - VIR_FREE(input); + virDomainInputDefFree(input); return -1; } @@ -20827,14 +21013,14 @@ static int virDomainDefAddImplicitVideo(virDomainDefPtr def) { int ret = -1; - virDomainVideoDefPtr video = NULL; + virDomainVideoDefPtr video; /* For backwards compatibility, if no <video> tag is set but there * is a <graphics> tag, then we add a single video tag */ if (def->ngraphics == 0 || def->nvideos > 0) return 0; - if (VIR_ALLOC(video) < 0) + if (!(video = virDomainVideoDefNew())) goto cleanup; video->type = virDomainVideoDefaultType(def); if (video->type < 0) { @@ -23253,28 +23439,6 @@ virDomainRNGDefFormat(virBufferPtr buf, return 0; } -void -virDomainRNGDefFree(virDomainRNGDefPtr def) -{ - if (!def) - return; - - switch ((virDomainRNGBackend) def->backend) { - case VIR_DOMAIN_RNG_BACKEND_RANDOM: - VIR_FREE(def->source.file); - break; - case VIR_DOMAIN_RNG_BACKEND_EGD: - virDomainChrSourceDefFree(def->source.chardev); - break; - case VIR_DOMAIN_RNG_BACKEND_LAST: - break; - } - - virDomainDeviceInfoClear(&def->info); - VIR_FREE(def->virtio); - VIR_FREE(def); -} - static int virDomainMemorySourceDefFormat(virBufferPtr buf, diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 00d0d65..a09669a 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2067,6 +2067,7 @@ struct _virDomainMemoryDef { virDomainDeviceInfo info; }; +virDomainMemoryDefPtr virDomainMemoryDefNew(void); void virDomainMemoryDefFree(virDomainMemoryDefPtr def); struct _virDomainIdMapEntry { @@ -2641,9 +2642,11 @@ int virDomainObjWait(virDomainObjPtr vm); int virDomainObjWaitUntil(virDomainObjPtr vm, unsigned long long whenms); +virDomainPanicDefPtr virDomainPanicDefNew(void); void virDomainPanicDefFree(virDomainPanicDefPtr panic); void virDomainResourceDefFree(virDomainResourceDefPtr resource); void virDomainGraphicsDefFree(virDomainGraphicsDefPtr def); +virDomainInputDefPtr virDomainInputDefNew(void); void virDomainInputDefFree(virDomainInputDefPtr def); virDomainDiskDefPtr virDomainDiskDefNew(virDomainXMLOptionPtr xmlopt); void virDomainDiskDefFree(virDomainDiskDefPtr def); @@ -2672,24 +2675,34 @@ virDomainControllerDefNew(virDomainControllerType type); void virDomainFSDefFree(virDomainFSDefPtr def); void virDomainActualNetDefFree(virDomainActualNetDefPtr def); void virDomainNetDefClear(virDomainNetDefPtr def); +virDomainNetDefPtr virDomainNetDefNew(void); void virDomainNetDefFree(virDomainNetDefPtr def); +virDomainSmartcardDefPtr virDomainSmartcardDefNew(void); void virDomainSmartcardDefFree(virDomainSmartcardDefPtr def); void virDomainChrDefFree(virDomainChrDefPtr def); void virDomainChrSourceDefFree(virDomainChrSourceDefPtr def); int virDomainChrSourceDefCopy(virDomainChrSourceDefPtr src, virDomainChrSourceDefPtr dest); void virDomainSoundCodecDefFree(virDomainSoundCodecDefPtr def); +virDomainSoundDefPtr virDomainSoundDefNew(void); void virDomainSoundDefFree(virDomainSoundDefPtr def); +virDomainMemballoonDefPtr virDomainMemballoonDefNew(void); void virDomainMemballoonDefFree(virDomainMemballoonDefPtr def); +virDomainNVRAMDefPtr virDomainNVRAMDefNew(void); void virDomainNVRAMDefFree(virDomainNVRAMDefPtr def); +virDomainWatchdogDefPtr virDomainWatchdogDefNew(void); void virDomainWatchdogDefFree(virDomainWatchdogDefPtr def); +virDomainVideoDefPtr virDomainVideoDefNew(void); void virDomainVideoDefFree(virDomainVideoDefPtr def); virDomainHostdevDefPtr virDomainHostdevDefNew(virDomainXMLOptionPtr xmlopt); void virDomainHostdevDefClear(virDomainHostdevDefPtr def); void virDomainHostdevDefFree(virDomainHostdevDefPtr def); +virDomainHubDefPtr virDomainHubDefNew(void); void virDomainHubDefFree(virDomainHubDefPtr def); +virDomainRedirdevDefPtr virDomainRedirdevDefNew(void); void virDomainRedirdevDefFree(virDomainRedirdevDefPtr def); void virDomainRedirFilterDefFree(virDomainRedirFilterDefPtr def); +virDomainShmemDefPtr virDomainShmemDefNew(void); void virDomainShmemDefFree(virDomainShmemDefPtr def); void virDomainDeviceDefFree(virDomainDeviceDefPtr def); virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomainDeviceDefPtr src, @@ -2699,6 +2712,7 @@ virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomainDeviceDefPtr src, int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, int type); virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device); +virDomainTPMDefPtr virDomainTPMDefNew(void); void virDomainTPMDefFree(virDomainTPMDefPtr def); typedef int (*virDomainDeviceInfoCallback)(virDomainDefPtr def, @@ -2903,6 +2917,7 @@ int virDomainDefCompatibleDevice(virDomainDefPtr def, virDomainDeviceDefPtr dev, virDomainDeviceAction action); +virDomainRNGDefPtr virDomainRNGDefNew(void); void virDomainRNGDefFree(virDomainRNGDefPtr def); int virDomainDiskIndexByAddress(virDomainDefPtr def, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 48e9e33..98f3969 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -377,11 +377,13 @@ virDomainHostdevModeTypeToString; virDomainHostdevRemove; virDomainHostdevSubsysPCIBackendTypeToString; virDomainHostdevSubsysTypeToString; +virDomainHubDefNew; virDomainHubTypeFromString; virDomainHubTypeToString; virDomainHypervTypeFromString; virDomainHypervTypeToString; virDomainInputDefFree; +virDomainInputDefNew; virDomainIOMMUModelTypeFromString; virDomainIOMMUModelTypeToString; virDomainIOThreadIDAdd; @@ -406,9 +408,11 @@ virDomainLoaderTypeFromString; virDomainLoaderTypeToString; virDomainLockFailureTypeFromString; virDomainLockFailureTypeToString; +virDomainMemballoonDefNew; virDomainMemballoonModelTypeFromString; virDomainMemballoonModelTypeToString; virDomainMemoryDefFree; +virDomainMemoryDefNew; virDomainMemoryFindByDef; virDomainMemoryFindInactiveByDef; virDomainMemoryInsert; @@ -419,6 +423,7 @@ virDomainNetAppendIPAddress; virDomainNetDefClear; virDomainNetDefFormat; virDomainNetDefFree; +virDomainNetDefNew; virDomainNetFind; virDomainNetFindIdx; virDomainNetGenerateMAC; @@ -439,6 +444,7 @@ virDomainNetTypeFromString; virDomainNetTypeToString; virDomainNostateReasonTypeFromString; virDomainNostateReasonTypeToString; +virDomainNVRAMDefNew; virDomainObjAssignDef; virDomainObjBroadcast; virDomainObjCopyPersistentDef; @@ -463,6 +469,8 @@ virDomainObjWait; virDomainObjWaitUntil; virDomainOSTypeFromString; virDomainOSTypeToString; +virDomainPanicDefFree; +virDomainPanicDefNew; virDomainParseMemory; virDomainPausedReasonTypeFromString; virDomainPausedReasonTypeToString; @@ -503,6 +511,7 @@ virDomainSmartcardTypeToString; virDomainSmbiosModeTypeFromString; virDomainSmbiosModeTypeToString; virDomainSoundDefFree; +virDomainSoundDefNew; virDomainSoundModelTypeFromString; virDomainSoundModelTypeToString; virDomainStartupPolicyTypeFromString; @@ -530,6 +539,7 @@ virDomainUSBDeviceDefForeach; virDomainVideoDefaultRAM; virDomainVideoDefaultType; virDomainVideoDefFree; +virDomainVideoDefNew; virDomainVideoTypeFromString; virDomainVideoTypeToString; virDomainVideoVGAConfTypeFromString; @@ -538,6 +548,7 @@ virDomainVirtTypeFromString; virDomainVirtTypeToString; virDomainWatchdogActionTypeFromString; virDomainWatchdogActionTypeToString; +virDomainWatchdogDefNew; virDomainWatchdogModelTypeFromString; virDomainWatchdogModelTypeToString; virDomainXMLOptionGetNamespace; diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index 23a02d7..a551229 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -219,7 +219,7 @@ openvzReadNetworkConf(virDomainDefPtr def, } else if (ret > 0) { token = strtok_r(temp, " ", &saveptr); while (token != NULL) { - if (VIR_ALLOC(net) < 0) + if (!(net = virDomainNetDefNew())) goto error; net->type = VIR_DOMAIN_NET_TYPE_ETHERNET; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c53ab97..43a23d1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3522,19 +3522,22 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, const char *backendType; int ret = -1; int rc; - virDomainMemoryDef mem = { 0 }; + virDomainMemoryDefPtr mem; unsigned long long memsize = virDomainNumaGetNodeMemorySize(def->numa, cell); + if (!(mem = virDomainMemoryDefNew())) + goto cleanup; + *backendStr = NULL; - mem.size = memsize; - mem.targetNode = cell; + mem->size = memsize; + mem->targetNode = cell; if (virAsprintf(&alias, "ram-node%zu", cell) < 0) goto cleanup; if ((rc = qemuBuildMemoryBackendStr(&props, &backendType, cfg, qemuCaps, - def, &mem, auto_nodeset, false)) < 0) + def, mem, auto_nodeset, false)) < 0) goto cleanup; if (!(*backendStr = virQEMUBuildObjectCommandlineFromJSON(backendType, @@ -3547,6 +3550,7 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, cleanup: VIR_FREE(alias); virJSONValueFree(props); + virDomainMemoryDefFree(mem); return ret; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 8e7404d..451bbdf 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2511,7 +2511,7 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def, if (addDefaultMemballoon && !def->memballoon) { virDomainMemballoonDefPtr memballoon; - if (VIR_ALLOC(memballoon) < 0) + if (!(memballoon = virDomainMemballoonDefNew())) goto cleanup; memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO; @@ -2545,10 +2545,13 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def, if (j == def->npanics) { virDomainPanicDefPtr panic; - if (VIR_ALLOC(panic) < 0 || - VIR_APPEND_ELEMENT_COPY(def->panics, + + if (!(panic = virDomainPanicDefNew())) + goto cleanup; + + if (VIR_APPEND_ELEMENT_COPY(def->panics, def->npanics, panic) < 0) { - VIR_FREE(panic); + virDomainPanicDefFree(panic); goto cleanup; } } diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 93ab304..c827a7e 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -2342,7 +2342,7 @@ qemuDomainUSBAddressAddHubs(virDomainDefPtr def) data.count, available_ports, hubs_needed); for (i = 0; i < hubs_needed; i++) { - if (VIR_ALLOC(hub) < 0) + if (!(hub = virDomainHubDefNew())) return -1; hub->type = VIR_DOMAIN_HUB_TYPE_USB; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index b5b62df..735983a 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -572,16 +572,15 @@ qemuDomainFindOrCreateSCSIDiskController(virQEMUDriverPtr driver, /* No SCSI controller present, for backward compatibility we * now hotplug a controller */ - if (VIR_ALLOC(cont) < 0) + if (!(cont = virDomainControllerDefNew(VIR_DOMAIN_CONTROLLER_TYPE_SCSI))) return NULL; - cont->type = VIR_DOMAIN_CONTROLLER_TYPE_SCSI; cont->idx = controller; cont->model = -1; VIR_INFO("No SCSI controller present, hotplugging one"); if (qemuDomainAttachControllerDevice(driver, vm, cont) < 0) { - VIR_FREE(cont); + virDomainControllerDefFree(cont); return NULL; } diff --git a/src/qemu/qemu_parse_command.c b/src/qemu/qemu_parse_command.c index 90e8d09..3d1f058 100644 --- a/src/qemu/qemu_parse_command.c +++ b/src/qemu/qemu_parse_command.c @@ -649,7 +649,7 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt, 0) < 0) return NULL; - if (VIR_ALLOC(def) < 0) + if (!(def = virDomainDiskDefNew(NULL))) goto cleanup; if (VIR_ALLOC(def->src) < 0) goto error; @@ -1032,7 +1032,7 @@ qemuParseCommandLineNet(virDomainXMLOptionPtr xmlopt, nkeywords = 0; } - if (VIR_ALLOC(def) < 0) + if (!(def = virDomainNetDefNew())) goto cleanup; /* 'tap' could turn into libvirt type=ethernet, type=bridge or @@ -1502,10 +1502,13 @@ qemuParseCommandLineCPU(virDomainDefPtr dom, if (j == dom->npanics) { virDomainPanicDefPtr panic; - if (VIR_ALLOC(panic) < 0 || - VIR_APPEND_ELEMENT_COPY(dom->panics, + + if (!(panic = virDomainPanicDefNew())) + goto cleanup; + + if (VIR_APPEND_ELEMENT_COPY(dom->panics, dom->npanics, panic) < 0) { - VIR_FREE(panic); + virDomainPanicDefFree(panic); goto cleanup; } panic->model = VIR_DOMAIN_PANIC_MODEL_HYPERV; @@ -2240,7 +2243,7 @@ qemuParseCommandLine(virCapsPtr caps, STREQ(val, "mouse") || STREQ(val, "keyboard")) { virDomainInputDefPtr input; - if (VIR_ALLOC(input) < 0) + if (!(input = virDomainInputDefNew())) goto error; input->bus = VIR_DOMAIN_INPUT_BUS_USB; if (STREQ(val, "tablet")) @@ -2330,7 +2333,7 @@ qemuParseCommandLine(virCapsPtr caps, if (type != -1) { virDomainSoundDefPtr snd; - if (VIR_ALLOC(snd) < 0) + if (!(snd = virDomainSoundDefNew())) goto error; snd->model = type; if (VIR_APPEND_ELEMENT(def->sounds, def->nsounds, snd) < 0) { @@ -2347,7 +2350,7 @@ qemuParseCommandLine(virCapsPtr caps, if (model != -1) { virDomainWatchdogDefPtr wd; - if (VIR_ALLOC(wd) < 0) + if (!(wd = virDomainWatchdogDefNew())) goto error; wd->model = model; wd->action = VIR_DOMAIN_WATCHDOG_ACTION_RESET; @@ -2450,7 +2453,7 @@ qemuParseCommandLine(virCapsPtr caps, STRPREFIX(progargv[i + 1], "spapr-nvram.reg=")) { WANT_VALUE(); - if (VIR_ALLOC(def->nvram) < 0) + if (!(def->nvram = virDomainNVRAMDefNew())) goto error; def->nvram->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO; @@ -2477,7 +2480,7 @@ qemuParseCommandLine(virCapsPtr caps, if (STRPREFIX(opts, "virtio-balloon")) { WANT_VALUE(); - if (VIR_ALLOC(def->memballoon) < 0) + if (!(def->memballoon = virDomainMemballoonDefNew())) goto error; def->memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO; } else { @@ -2606,7 +2609,7 @@ qemuParseCommandLine(virCapsPtr caps, if (def->ngraphics) { virDomainVideoDefPtr vid; - if (VIR_ALLOC(vid) < 0) + if (!(vid = virDomainVideoDefNew())) goto error; if (def->virtType == VIR_DOMAIN_VIRT_XEN) vid->type = VIR_DOMAIN_VIDEO_TYPE_XEN; @@ -2631,7 +2634,7 @@ qemuParseCommandLine(virCapsPtr caps, */ if (!def->memballoon) { virDomainMemballoonDefPtr memballoon; - if (VIR_ALLOC(memballoon) < 0) + if (!(memballoon = virDomainMemballoonDefNew())) goto error; memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_NONE; diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 92ee371..32f45c3 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -3223,7 +3223,7 @@ vboxDumpVideo(virDomainDefPtr def, vboxDriverPtr data ATTRIBUTE_UNUSED, return -1; def->nvideos = 1; - if (VIR_ALLOC(def->videos[0]) < 0) + if (!(def->videos[0] = virDomainVideoDefNew())) return -1; gVBoxAPI.UIMachine.GetVRAMSize(machine, &VRAMSize); @@ -3390,7 +3390,7 @@ vboxDumpSharedFolders(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine char *hostPath = NULL; PRBool writable = PR_FALSE; - if (VIR_ALLOC(def->fss[i]) < 0) + if (!(def->fss[i] = virDomainFSDefNew())) goto sharedFoldersCleanup; def->fss[i]->type = VIR_DOMAIN_FS_TYPE_MOUNT; @@ -3451,7 +3451,7 @@ vboxDumpNetwork(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine, PRUi /* Allocate memory for the networkcards which are enabled */ if ((def->nnets > 0) && (VIR_ALLOC_N(def->nets, def->nnets) >= 0)) { for (i = 0; i < def->nnets; i++) - ignore_value(VIR_ALLOC(def->nets[i])); + def->nets[i] = virDomainNetDefNew(); } /* Now get the details about the network cards here */ @@ -3585,7 +3585,7 @@ vboxDumpAudio(virDomainDefPtr def, vboxDriverPtr data ATTRIBUTE_UNUSED, def->nsounds = 1; if (VIR_ALLOC_N(def->sounds, def->nsounds) >= 0) { - if (VIR_ALLOC(def->sounds[0]) >= 0) { + if ((def->sounds[0] = virDomainSoundDefNew())) { gVBoxAPI.UIAudioAdapter.GetAudioController(audioAdapter, &audioController); if (audioController == AudioControllerType_SB16) { def->sounds[0]->model = VIR_DOMAIN_SOUND_MODEL_SB16; @@ -3630,7 +3630,7 @@ vboxDumpSerial(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine, PRUin /* Allocate memory for the serial ports which are enabled */ if ((def->nserials > 0) && (VIR_ALLOC_N(def->serials, def->nserials) >= 0)) { for (i = 0; i < def->nserials; i++) - ignore_value(VIR_ALLOC(def->serials[i])); + def->serials[i] = virDomainChrDefNew(NULL); } /* Now get the details about the serial ports here */ @@ -3718,7 +3718,7 @@ vboxDumpParallel(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine, PRU /* Allocate memory for the parallel ports which are enabled */ if ((def->nparallels > 0) && (VIR_ALLOC_N(def->parallels, def->nparallels) >= 0)) { for (i = 0; i < def->nparallels; i++) - ignore_value(VIR_ALLOC(def->parallels[i])); + def->parallels[i] = virDomainChrDefNew(NULL); } /* Now get the details about the parallel ports here */ diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 96507f1..2203599 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -3037,7 +3037,7 @@ virVMXParseSVGA(virConfPtr conf, virDomainVideoDefPtr *def) return -1; } - if (VIR_ALLOC(*def) < 0) + if (!(*def = virDomainVideoDefNew())) return -1; (*def)->type = VIR_DOMAIN_VIDEO_TYPE_VMVGA; diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 0aa1a30..161ce30 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -552,7 +552,7 @@ prlsdkAddDomainVideoInfoCt(virDomainDefPtr def) if (def->ngraphics == 0) return 0; - if (VIR_ALLOC(video) < 0) + if (!(virDomainVideoDefNew())) goto cleanup; video->type = VIR_DOMAIN_VIDEO_TYPE_PARALLELS; @@ -581,7 +581,7 @@ prlsdkAddDomainVideoInfoVm(PRL_HANDLE sdkdom, virDomainDefPtr def) ret = PrlVmCfg_GetVideoRamSize(sdkdom, &videoRam); prlsdkCheckRetGoto(ret, error); - if (VIR_ALLOC(video) < 0) + if (!(video = virDomainVideoDefNew())) goto error; if (VIR_ALLOC(accel) < 0) @@ -1157,7 +1157,7 @@ prlsdkAddDomainNetInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) ret = PrlVmCfg_GetNetAdapter(sdkdom, i, &netAdapter); prlsdkCheckRetGoto(ret, error); - if (VIR_ALLOC(net) < 0) + if (!(net = virDomainNetDefNew())) goto error; if (prlsdkGetNetInfo(netAdapter, net, IS_CT(def)) < 0) diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index b5cd47e..53e1ba8 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -375,7 +375,7 @@ xenDomainDefPostParse(virDomainDefPtr def, { if (!def->memballoon) { virDomainMemballoonDefPtr memballoon; - if (VIR_ALLOC(memballoon) < 0) + if (!(memballoon = virDomainMemballoonDefNew())) return -1; memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_XEN; diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index fb462cd..09fbcff 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -1548,7 +1548,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) goto error; } for (i = 0; i < vif_set->size; i++) { - if (VIR_ALLOC(defPtr->nets[i]) < 0) { + if (!(defPtr->nets[i] = virDomainNetDefNew())) xen_vif_set_free(vif_set); goto error; } diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c index 6d7dc2c..146acc4 100644 --- a/src/xenconfig/xen_common.c +++ b/src/xenconfig/xen_common.c @@ -942,7 +942,7 @@ xenParseVif(virConfPtr conf, virDomainDefPtr def, const char *vif_typename) key = nextkey; } - if (VIR_ALLOC(net) < 0) + if (!(net = virDomainNetDefNew())) goto cleanup; if (mac[0]) { diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c index fefa61a..f37a458 100644 --- a/src/xenconfig/xen_sxpr.c +++ b/src/xenconfig/xen_sxpr.c @@ -605,7 +605,7 @@ xenParseSxprNets(virDomainDefPtr def, model = sexpr_node(node, "device/vif/model"); type = sexpr_node(node, "device/vif/type"); - if (VIR_ALLOC(net) < 0) + if (!(net = virDomainNetDefNew())) goto cleanup; if (tmp != NULL || @@ -728,7 +728,7 @@ xenParseSxprSound(virDomainDefPtr def, for (i = 0; i < (VIR_DOMAIN_SOUND_MODEL_ES1370 + 1); i++) { virDomainSoundDefPtr sound; - if (VIR_ALLOC(sound) < 0) + if (!(sound = virDomainSoundDefNew())) goto error; sound->model = i; def->sounds[def->nsounds++] = sound; @@ -752,7 +752,7 @@ xenParseSxprSound(virDomainDefPtr def, goto error; } - if (VIR_ALLOC(sound) < 0) + if (!(sound = virDomainSoundDefNew())) goto error; if ((sound->model = virDomainSoundModelTypeFromString(model)) < 0) { @@ -801,7 +801,7 @@ xenParseSxprUSB(virDomainDefPtr def, STREQ(tmp, "mouse") || STREQ(tmp, "keyboard")) { virDomainInputDefPtr input; - if (VIR_ALLOC(input) < 0) + if (!(input = virDomainInputDefNew())) goto error; input->bus = VIR_DOMAIN_INPUT_BUS_USB; if (STREQ(tmp, "tablet")) diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c index fa3f1d0..86eacf1 100644 --- a/src/xenconfig/xen_xl.c +++ b/src/xenconfig/xen_xl.c @@ -550,7 +550,7 @@ xenParseXLInputDevs(virConfPtr conf, virDomainDefPtr def) STREQ(str, "mouse") || STREQ(str, "keyboard"))) { virDomainInputDefPtr input; - if (VIR_ALLOC(input) < 0) + if (!(input = virDomainInputDefNew())) return -1; input->bus = VIR_DOMAIN_INPUT_BUS_USB; diff --git a/src/xenconfig/xen_xm.c b/src/xenconfig/xen_xm.c index 8ef68bb..79c7f3b 100644 --- a/src/xenconfig/xen_xm.c +++ b/src/xenconfig/xen_xm.c @@ -412,7 +412,7 @@ xenParseXMInputDevs(virConfPtr conf, virDomainDefPtr def) STREQ(str, "mouse") || STREQ(str, "keyboard"))) { virDomainInputDefPtr input; - if (VIR_ALLOC(input) < 0) + if (!(input = virDomainInputDefNew())) return -1; input->bus = VIR_DOMAIN_INPUT_BUS_USB; -- 2.7.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list