lib/uuid.c: change prototype of uuid_guid_get_str()
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Fri, 20 Nov 2020 10:45:35 +0000 (11:45 +0100)
committerTom Rini <trini@konsulko.com>
Sat, 16 Jan 2021 19:49:09 +0000 (14:49 -0500)
There's no reason to require an appropriately sized output parameter
for the string, that's error-prone should the table ever grow an
element with a longer string. We can just return the const char*
pointer directly.

Update the only caller accordingly, and get rid of pointless ifdeffery
in the header so that the compiler always sees a declaration and can
thus do type-checking, whether or not PARTITION_TYPE_GUID is enabled
or not.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
disk/part_efi.c
include/uuid.h
lib/uuid.c

index 60b1c1d7618ee3472750a10a9ac0c9bc94024983..2f922662e6e65212ca516614f16590ac6bc3aeef 100644 (file)
@@ -247,10 +247,11 @@ void part_print_efi(struct blk_desc *dev_desc)
                uuid_bin = (unsigned char *)gpt_pte[i].partition_type_guid.b;
                uuid_bin_to_str(uuid_bin, uuid, UUID_STR_FORMAT_GUID);
                printf("\ttype:\t%s\n", uuid);
-#ifdef CONFIG_PARTITION_TYPE_GUID
-               if (!uuid_guid_get_str(uuid_bin, uuid))
-                       printf("\ttype:\t%s\n", uuid);
-#endif
+               if (CONFIG_IS_ENABLED(PARTITION_TYPE_GUID)) {
+                       const char *type = uuid_guid_get_str(uuid_bin);
+                       if (type)
+                               printf("\ttype:\t%s\n", type);
+               }
                uuid_bin = (unsigned char *)gpt_pte[i].unique_partition_guid.b;
                uuid_bin_to_str(uuid_bin, uuid, UUID_STR_FORMAT_GUID);
                printf("\tguid:\t%s\n", uuid);
index 73c5a89ec7cf438a8dc39eaff762d6be156a0fd0..0c653cb087482eb582017f75c289aa1d29447e0a 100644 (file)
@@ -39,10 +39,8 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin,
                    int str_format);
 void uuid_bin_to_str(const unsigned char *uuid_bin, char *uuid_str,
                     int str_format);
-#ifdef CONFIG_PARTITION_TYPE_GUID
 int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
-int uuid_guid_get_str(const unsigned char *guid_bin, char *guid_str);
-#endif
+const char *uuid_guid_get_str(const unsigned char *guid_bin);
 void gen_rand_uuid(unsigned char *uuid_bin);
 void gen_rand_uuid_str(char *uuid_str, int str_format);
 #endif
index e62d5ca2643f60b1aedee970af95e353a5d10b73..6cfb6cd449dae7b26f3118982d5ded8d7a0256c0 100644 (file)
@@ -122,20 +122,19 @@ int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin)
  * uuid_guid_get_str() - this function get string for GUID.
  *
  * @param guid_bin - pointer to string with partition type guid [16B]
- * @param guid_str - pointer to allocated partition type string [7B]
+ *
+ * Returns NULL if the type GUID is not known.
  */
-int uuid_guid_get_str(const unsigned char *guid_bin, char *guid_str)
+const char *uuid_guid_get_str(const unsigned char *guid_bin)
 {
        int i;
 
-       *guid_str = 0;
        for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
                if (!memcmp(list_guid[i].guid.b, guid_bin, 16)) {
-                       strcpy(guid_str, list_guid[i].string);
-                       return 0;
+                       return list_guid[i].string;
                }
        }
-       return -ENODEV;
+       return NULL;
 }
 #endif