From f9efcd921813e23c0c742da4b8c70800812fb9af Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Wed, 1 Apr 2015 06:46:25 -0400 Subject: [PATCH] iscsi: Fix exit path for virStorageBackendISCSIFindLUs failure If the call to virStorageBackendISCSIGetHostNumber failed, we set retval = -1, but yet still called virStorageBackendSCSIFindLUs. Need to add a goto cleanup - while at it, adjust the logic to initialize retval to -1 and only changed to 0 (zero) on success. Signed-off-by: John Ferlan --- src/storage/storage_backend_iscsi.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c index 0c225b05ad..197d33381f 100644 --- a/src/storage/storage_backend_iscsi.c +++ b/src/storage/storage_backend_iscsi.c @@ -131,23 +131,27 @@ virStorageBackendISCSIFindLUs(virStoragePoolObjPtr pool, const char *session) { char *sysfs_path; - int retval = 0; + int retval = -1; uint32_t host; if (virAsprintf(&sysfs_path, "/sys/class/iscsi_session/session%s/device", session) < 0) - return -1; + goto cleanup; if (virStorageBackendISCSIGetHostNumber(sysfs_path, &host) < 0) { virReportSystemError(errno, _("Failed to get host number for iSCSI session " "with path '%s'"), sysfs_path); - retval = -1; + goto cleanup; } if (virStorageBackendSCSIFindLUs(pool, host) < 0) - retval = -1; + goto cleanup; + + retval = 0; + + cleanup: VIR_FREE(sysfs_path); -- GitLab