[libvirt PATCH 0/4] vz: use g_new0 (glib chronicles)

Ján Tomko (4): vz: separate if conditions in vzEatCookie vz: vzEatCookie: use distinct 'tmp' variables vz: vzEatCookie: separate allocation vz: use g_new0 instead of VIR_ALLOC src/vz/vz_driver.c | 49 ++++++++++++++++++++++------------------------ src/vz/vz_sdk.c | 46 +++++++++++++------------------------------ src/vz/vz_utils.c | 3 +-- 3 files changed, 38 insertions(+), 60 deletions(-) -- 2.26.2

Create a separate scope where 'tmp' variable can be used. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vz/vz_driver.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 40b1828eb2..5b40f9a835 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -2806,26 +2806,28 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) _("(_migration_cookie)"), &ctx))) goto error; - if ((flags & VZ_MIGRATION_COOKIE_SESSION_UUID) - && (!(tmp = virXPathString("string(./session-uuid[1])", ctx)) + if (flags & VZ_MIGRATION_COOKIE_SESSION_UUID) { + if ((!(tmp = virXPathString("string(./session-uuid[1])", ctx)) || (VIR_ALLOC_N(mig->session_uuid, VIR_UUID_BUFLEN) < 0) || (virUUIDParse(tmp, mig->session_uuid) < 0))) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("missing or malformed session-uuid element " - "in migration data")); - VIR_FREE(tmp); - goto error; + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing or malformed session-uuid element " + "in migration data")); + VIR_FREE(tmp); + goto error; + } } VIR_FREE(tmp); - if ((flags & VZ_MIGRATION_COOKIE_DOMAIN_UUID) - && (!(tmp = virXPathString("string(./uuid[1])", ctx)) + if (flags & VZ_MIGRATION_COOKIE_DOMAIN_UUID) { + if ((!(tmp = virXPathString("string(./uuid[1])", ctx)) || (VIR_ALLOC_N(mig->uuid, VIR_UUID_BUFLEN) < 0) || (virUUIDParse(tmp, mig->uuid) < 0))) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("missing or malformed uuid element in migration data")); - VIR_FREE(tmp); - goto error; + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing or malformed uuid element in migration data")); + VIR_FREE(tmp); + goto error; + } } VIR_FREE(tmp); -- 2.26.2

Mark both as g_autofree within their separate scopes. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vz/vz_driver.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 5b40f9a835..dad7fe37b7 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -2790,7 +2790,6 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) { xmlDocPtr doc = NULL; xmlXPathContextPtr ctx = NULL; - char *tmp = NULL; vzMigrationCookiePtr mig = NULL; if (VIR_ALLOC(mig) < 0) @@ -2807,29 +2806,29 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) goto error; if (flags & VZ_MIGRATION_COOKIE_SESSION_UUID) { + g_autofree char *tmp = NULL; + if ((!(tmp = virXPathString("string(./session-uuid[1])", ctx)) || (VIR_ALLOC_N(mig->session_uuid, VIR_UUID_BUFLEN) < 0) || (virUUIDParse(tmp, mig->session_uuid) < 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing or malformed session-uuid element " "in migration data")); - VIR_FREE(tmp); goto error; } } - VIR_FREE(tmp); if (flags & VZ_MIGRATION_COOKIE_DOMAIN_UUID) { + g_autofree char *tmp = NULL; + if ((!(tmp = virXPathString("string(./uuid[1])", ctx)) || (VIR_ALLOC_N(mig->uuid, VIR_UUID_BUFLEN) < 0) || (virUUIDParse(tmp, mig->uuid) < 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing or malformed uuid element in migration data")); - VIR_FREE(tmp); goto error; } } - VIR_FREE(tmp); if ((flags & VZ_MIGRATION_COOKIE_DOMAIN_NAME) && !(mig->name = virXPathString("string(./name[1])", ctx))) { -- 2.26.2

Use g_new0 outside of the error condition. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vz/vz_driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index dad7fe37b7..a83d4117a4 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -2807,9 +2807,9 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) if (flags & VZ_MIGRATION_COOKIE_SESSION_UUID) { g_autofree char *tmp = NULL; + mig->session_uuid = g_new0(unsigned char, VIR_UUID_BUFLEN); if ((!(tmp = virXPathString("string(./session-uuid[1])", ctx)) - || (VIR_ALLOC_N(mig->session_uuid, VIR_UUID_BUFLEN) < 0) || (virUUIDParse(tmp, mig->session_uuid) < 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing or malformed session-uuid element " @@ -2820,9 +2820,9 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) if (flags & VZ_MIGRATION_COOKIE_DOMAIN_UUID) { g_autofree char *tmp = NULL; + mig->uuid = g_new0(unsigned char, VIR_UUID_BUFLEN); if ((!(tmp = virXPathString("string(./uuid[1])", ctx)) - || (VIR_ALLOC_N(mig->uuid, VIR_UUID_BUFLEN) < 0) || (virUUIDParse(tmp, mig->uuid) < 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing or malformed uuid element in migration data")); -- 2.26.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/vz/vz_driver.c | 12 ++++-------- src/vz/vz_sdk.c | 46 ++++++++++++++-------------------------------- src/vz/vz_utils.c | 3 +-- 3 files changed, 19 insertions(+), 42 deletions(-) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index a83d4117a4..8d47b90bdb 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -380,8 +380,7 @@ vzConnectOpen(virConnectPtr conn, if (!(driver = vzGetDriverConnection())) return VIR_DRV_OPEN_ERROR; - if (VIR_ALLOC(privconn) < 0) - goto error; + privconn = g_new0(vzConn, 1); conn->privateData = privconn; privconn->driver = driver; @@ -2792,8 +2791,7 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) xmlXPathContextPtr ctx = NULL; vzMigrationCookiePtr mig = NULL; - if (VIR_ALLOC(mig) < 0) - return NULL; + mig = g_new0(vzMigrationCookie, 1); if (!cookiein || cookieinlen <= 0 || cookiein[cookieinlen - 1] != '\0') { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -3717,8 +3715,7 @@ vzDomainGetAllStats(virConnectPtr conn, virDomainStatsRecordPtr stat; int maxparams = 0; - if (VIR_ALLOC(stat) < 0) - return NULL; + stat = g_new0(virDomainStatsRecord, 1); if (vzDomainGetStateStats(dom, stat, &maxparams) < 0) goto error; @@ -3802,8 +3799,7 @@ vzConnectGetAllDomainStats(virConnectPtr conn, return -1; } - if (VIR_ALLOC_N(tmpstats, ndoms + 1) < 0) - goto cleanup; + tmpstats = g_new0(virDomainStatsRecordPtr, ndoms + 1); for (i = 0; i < ndoms; i++) { virDomainStatsRecordPtr tmp; diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 3e7d55c50b..c6ed9bf9ce 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -70,16 +70,14 @@ logPrlErrorHelper(PRL_RESULT err, const char *filename, /* Get required buffer length */ PrlApi_GetResultDescription(err, PRL_TRUE, PRL_FALSE, NULL, &len); - if (VIR_ALLOC_N(msg1, len) < 0) - goto cleanup; + msg1 = g_new0(char, len); /* get short error description */ PrlApi_GetResultDescription(err, PRL_TRUE, PRL_FALSE, msg1, &len); PrlApi_GetResultDescription(err, PRL_FALSE, PRL_FALSE, NULL, &len); - if (VIR_ALLOC_N(msg2, len) < 0) - goto cleanup; + msg2 = g_new0(char, len); /* get long error description */ PrlApi_GetResultDescription(err, PRL_FALSE, PRL_FALSE, msg2, &len); @@ -88,7 +86,6 @@ logPrlErrorHelper(PRL_RESULT err, const char *filename, filename, funcname, linenr, _("%s %s"), msg1, msg2); - cleanup: VIR_FREE(msg1); VIR_FREE(msg2); } @@ -122,22 +119,19 @@ logPrlEventErrorHelper(PRL_HANDLE event, const char *filename, PrlEvent_GetErrString(event, PRL_TRUE, PRL_FALSE, NULL, &len); - if (VIR_ALLOC_N(msg1, len) < 0) - goto cleanup; + msg1 = g_new0(char, len); PrlEvent_GetErrString(event, PRL_TRUE, PRL_FALSE, msg1, &len); PrlEvent_GetErrString(event, PRL_FALSE, PRL_FALSE, NULL, &len); - if (VIR_ALLOC_N(msg2, len) < 0) - goto cleanup; + msg2 = g_new0(char, len); PrlEvent_GetErrString(event, PRL_FALSE, PRL_FALSE, msg2, &len); virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INTERNAL_ERROR, filename, funcname, linenr, _("%s %s"), msg1, msg2); - cleanup: VIR_FREE(msg1); VIR_FREE(msg2); } @@ -306,8 +300,7 @@ prlsdkGetStringParamVar(prlsdkParamGetterType getter, PRL_HANDLE handle) pret = getter(handle, NULL, &buflen); prlsdkCheckRetGoto(pret, error); - if (VIR_ALLOC_N(str, buflen) < 0) - goto error; + str = g_new0(char, buflen); pret = getter(handle, str, &buflen); prlsdkCheckRetGoto(pret, error); @@ -582,11 +575,8 @@ prlsdkAddDomainVideoInfoVm(PRL_HANDLE sdkdom, virDomainDefPtr def) ret = PrlVmCfg_GetVideoRamSize(sdkdom, &videoRam); prlsdkCheckRetGoto(ret, error); - if (VIR_ALLOC(video) < 0) - goto error; - - if (VIR_ALLOC(accel) < 0) - goto error; + video = g_new0(virDomainVideoDef, 1); + accel = g_new0(virDomainVideoAccelDef, 1); if (VIR_APPEND_ELEMENT_COPY(def->videos, def->nvideos, video) < 0) goto error; @@ -773,8 +763,7 @@ prlsdkGetFSInfo(PRL_HANDLE prldisk, goto cleanup; } fs->type = VIR_DOMAIN_FS_TYPE_VOLUME; - if (VIR_ALLOC(fs->src->srcpool) < 0) - goto cleanup; + fs->src->srcpool = g_new0(virStorageSourcePoolDef, 1); fs->src->srcpool->pool = g_strdup(matches[1]); fs->src->srcpool->volume = g_strdup(matches[2]); VIR_FREE(buf); @@ -914,8 +903,7 @@ prlsdkParseNetAddress(char *addr) *maskstr = '\0'; ++maskstr; - if (VIR_ALLOC(ip) < 0) - goto cleanup; + ip = g_new0(virNetDevIPAddr, 1); if (virSocketAddrParse(&ip->address, addr, AF_UNSPEC) < 0) goto cleanup; @@ -962,8 +950,7 @@ prlsdkGetNetAddresses(PRL_HANDLE sdknet, virDomainNetDefPtr net) pret = PrlStrList_GetItem(addrlist, i, NULL, &buflen); prlsdkCheckRetGoto(pret, cleanup); - if (VIR_ALLOC_N(addr, buflen) < 0) - goto cleanup; + addr = g_new0(char, buflen); pret = PrlStrList_GetItem(addrlist, i, addr, &buflen); prlsdkCheckRetGoto(pret, cleanup); @@ -1145,8 +1132,7 @@ prlsdkAddDomainNetInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) ret = PrlVmCfg_GetNetAdapter(sdkdom, i, &netAdapter); prlsdkCheckRetGoto(ret, error); - if (VIR_ALLOC(net) < 0) - goto error; + net = g_new0(virDomainNetDef, 1); if (prlsdkGetNetInfo(netAdapter, net, IS_CT(def)) < 0) goto error; @@ -1333,8 +1319,7 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) if (vncMode == PRD_DISABLED) return 0; - if (VIR_ALLOC(gr) < 0) - goto error; + gr = g_new0(virDomainGraphicsDef, 1); if (!(passwd = prlsdkGetStringParamVar(PrlVmCfg_GetVNCPassword, sdkdom))) goto error; @@ -1351,9 +1336,7 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) gr->type = VIR_DOMAIN_GRAPHICS_TYPE_VNC; gr->data.vnc.port = port; - if (VIR_ALLOC(gr->listens) < 0) - goto error; - + gr->listens = g_new0(virDomainGraphicsListenDef, 1); gr->nListens = 1; if (!(gr->listens[0].address = prlsdkGetStringParamVar(PrlVmCfg_GetVNCHostName, @@ -4652,8 +4635,7 @@ prlsdkParseSnapshotTree(const char *treexml) if (nodes[i]->parent == root) continue; - if (VIR_ALLOC(def) < 0) - goto cleanup; + def = g_new0(virDomainSnapshotDef, 1); ctxt->node = nodes[i]; diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c index c31ff53cfb..4a79b55f3e 100644 --- a/src/vz/vz_utils.c +++ b/src/vz/vz_utils.c @@ -556,8 +556,7 @@ vzDomObjAlloc(void *opaque G_GNUC_UNUSED) { vzDomObjPtr pdom = NULL; - if (VIR_ALLOC(pdom) < 0) - return NULL; + pdom = g_new0(struct vzDomObj, 1); if (virCondInit(&pdom->job.cond) < 0) goto error; -- 2.26.2

On Mon, Oct 05, 2020 at 12:23:55AM +0200, Ján Tomko wrote:
Ján Tomko (4): vz: separate if conditions in vzEatCookie vz: vzEatCookie: use distinct 'tmp' variables vz: vzEatCookie: separate allocation vz: use g_new0 instead of VIR_ALLOC
src/vz/vz_driver.c | 49 ++++++++++++++++++++++------------------------ src/vz/vz_sdk.c | 46 +++++++++++++------------------------------ src/vz/vz_utils.c | 3 +-- 3 files changed, 38 insertions(+), 60 deletions(-)
Reviewed-by: Erik Skultety <eskultet@redhat.com>
participants (2)
-
Erik Skultety
-
Ján Tomko