summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-04-20 10:59:32 -0400
committerTom Rini <trini@konsulko.com>2016-04-20 13:21:24 -0400
commita238b0dacffd305f78fc23b2151521cce2384311 (patch)
tree7f9482716644e4357f8750e75ad68c73d63d6c3d
parenteb6b50f631628f48b7e72432ae878e6ff0e306c3 (diff)
downloadtalos-obmc-uboot-a238b0dacffd305f78fc23b2151521cce2384311.tar.gz
talos-obmc-uboot-a238b0dacffd305f78fc23b2151521cce2384311.zip
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>
-rw-r--r--cmd/usb_mass_storage.c18
1 files 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:
OpenPOWER on IntegriCloud