From: Peter Krempa Date: Mon, 14 Jun 2021 14:44:19 +0000 (+0200) Subject: virStorageBackendRBDGetVolNames: Refactor cleanup in 'rbd_list' version X-Git-Tag: v7.5.0-rc1~72 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=49d47342b34ff3a3b3ea7cfe8c31e66b5c6ebc18;p=thirdparty%2Flibvirt.git virStorageBackendRBDGetVolNames: Refactor cleanup in 'rbd_list' version Use automatic memory freeing for the string list so that we can remove the cleanup section. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index 371ebfaf1b..a4e8115dc4 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -611,7 +611,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDState *ptr) static char ** virStorageBackendRBDGetVolNames(virStorageBackendRBDState *ptr) { - char **names = NULL; + g_auto(GStrv) names = NULL; size_t nnames = 0; int rc; size_t max_size = 1024; @@ -626,7 +626,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDState *ptr) break; if (rc != -ERANGE) { virReportSystemError(errno, "%s", _("Unable to list RBD images")); - goto error; + return NULL; } VIR_FREE(namebuf); } @@ -640,18 +640,14 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDState *ptr) namedup = g_strdup(name); if (VIR_APPEND_ELEMENT(names, nnames, namedup) < 0) - goto error; + return NULL; name += strlen(name) + 1; } VIR_EXPAND_N(names, nnames, 1); - return names; - - error: - virStringListFreeCount(names, nnames); - return NULL; + return g_steal_pointer(&names); } #endif /* ! WITH_RBD_LIST2 */