cmd/usb_mass_storage.c: Rework ums_init() ret logic slightly
authorTom Rini <trini@konsulko.com>
Wed, 20 Apr 2016 14:59:32 +0000 (10:59 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 20 Apr 2016 17:21:24 +0000 (13:21 -0400)
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

index ac53a73310bb9dd0d95217921d838201cc4987bf..b05913ac34464903bbc285f52b7a129843bbf5cf 100644 (file)
@@ -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: