From: Peter Krempa Date: Mon, 28 Sep 2020 15:03:33 +0000 (+0200) Subject: qemuMigrationCookieNew: Refactor allocation and cleanup X-Git-Tag: v6.9.0-rc1~464 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4aef0fe324428c1ff905ee0ce2b114af0827286a;p=thirdparty%2Flibvirt.git qemuMigrationCookieNew: Refactor allocation and cleanup Move around some code so that we can get rid of the 'cleanup:' label. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 124f61e3ea..a04b74f092 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -280,31 +280,30 @@ qemuMigrationCookieNew(const virDomainDef *def, const char *origname) { qemuMigrationCookiePtr mig = NULL; - const char *name; + unsigned char localHostUUID[VIR_UUID_BUFLEN]; + g_autofree char *localHostname = NULL; - if (VIR_ALLOC(mig) < 0) - goto error; - - if (origname) - name = origname; - else - name = def->name; - mig->name = g_strdup(name); - memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN); + if (!(localHostname = virGetHostname())) + return NULL; - if (!(mig->localHostname = virGetHostname())) - goto error; - if (virGetHostUUID(mig->localHostuuid) < 0) { + if (virGetHostUUID(localHostUUID) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to obtain host UUID")); - goto error; + return NULL; } - return mig; + mig = g_new0(qemuMigrationCookie, 1); - error: - qemuMigrationCookieFree(mig); - return NULL; + if (origname) + mig->name = g_strdup(origname); + else + mig->name = g_strdup(def->name); + + memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN); + memcpy(mig->localHostuuid, localHostUUID, VIR_UUID_BUFLEN); + mig->localHostname = g_steal_pointer(&localHostname); + + return mig; }