From: John Ferlan Date: Fri, 6 Oct 2017 16:12:38 +0000 (-0400) Subject: storage: Add error path for virStorageBackendCreateQemuImgCmdFromVol X-Git-Tag: v3.9.0-rc1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07731f9917c2961bb30606d3b52baad514679aca;p=thirdparty%2Flibvirt.git storage: Add error path for virStorageBackendCreateQemuImgCmdFromVol Rather than inline the various free's and return NULL, just create an error label. --- diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 4371963a53..52926adee7 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -1261,19 +1261,13 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn, if (info.format == VIR_STORAGE_FILE_RAW && vol->target.encryption != NULL && vol->target.encryption->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) { - if (storageBackendCreateQemuImgSecretObject(cmd, vol, &info) < 0) { - VIR_FREE(info.secretAlias); - virCommandFree(cmd); - return NULL; - } + if (storageBackendCreateQemuImgSecretObject(cmd, vol, &info) < 0) + goto error; enc = &vol->target.encryption->encinfo; } - if (storageBackendCreateQemuImgSetOptions(cmd, imgformat, enc, info) < 0) { - VIR_FREE(info.secretAlias); - virCommandFree(cmd); - return NULL; - } + if (storageBackendCreateQemuImgSetOptions(cmd, imgformat, enc, info) < 0) + goto error; VIR_FREE(info.secretAlias); if (info.inputPath) @@ -1283,6 +1277,11 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn, virCommandAddArgFormat(cmd, "%lluK", info.size_arg); return cmd; + + error: + VIR_FREE(info.secretAlias); + virCommandFree(cmd); + return NULL; }