From a238b0dacffd305f78fc23b2151521cce2384311 Mon Sep 17 00:00:00 2001
From: Tom Rini <trini@konsulko.com>
Date: Wed, 20 Apr 2016 10:59:32 -0400
Subject: [PATCH] cmd/usb_mass_storage.c: Rework ums_init() ret logic slightly

Previously, ret could be used uninitialized if
blk_get_device_part_str() failed.  Default to ret being set to -1 so
that we always return an err up if we have a problem and then invert the
logic on testing ums_count as when that is non-zero is the time we can
return 0.

Cc: John Tobias <john.tobias.ph@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
---
 cmd/usb_mass_storage.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c
index ac53a73310..b05913ac34 100644
--- a/cmd/usb_mass_storage.c
+++ b/cmd/usb_mass_storage.c
@@ -56,7 +56,7 @@ static int ums_init(const char *devtype, const char *devnums_part_str)
 	struct blk_desc *block_dev;
 	disk_partition_t info;
 	int partnum;
-	int ret;
+	int ret = -1;
 	struct ums *ums_new;
 
 	s = strdup(devnums_part_str);
@@ -85,16 +85,12 @@ static int ums_init(const char *devtype, const char *devnums_part_str)
 			partnum = 0;
 
 		/* f_mass_storage.c assumes SECTOR_SIZE sectors */
-		if (block_dev->blksz != SECTOR_SIZE) {
-			ret = -1;
+		if (block_dev->blksz != SECTOR_SIZE)
 			goto cleanup;
-		}
 
 		ums_new = realloc(ums, (ums_count + 1) * sizeof(*ums));
-		if (!ums_new) {
-			ret = -1;
+		if (!ums_new)
 			goto cleanup;
-		}
 		ums = ums_new;
 
 		/* if partnum = 0, expose all partitions */
@@ -110,10 +106,8 @@ static int ums_init(const char *devtype, const char *devnums_part_str)
 		ums[ums_count].write_sector = ums_write_sector;
 
 		name = malloc(UMS_NAME_LEN);
-		if (!name) {
-			ret = -1;
+		if (!name)
 			goto cleanup;
-		}
 		snprintf(name, UMS_NAME_LEN, "UMS disk %d", ums_count);
 		ums[ums_count].name = name;
 		ums[ums_count].block_dev = *block_dev;
@@ -127,9 +121,7 @@ static int ums_init(const char *devtype, const char *devnums_part_str)
 		ums_count++;
 	}
 
-	if (!ums_count)
-		ret = -1;
-	else
+	if (ums_count)
 		ret = 0;
 
 cleanup:
-- 
2.39.5