]> www.infradead.org Git - mtd-utils.git/commitdiff
[MTD] UBI Utils: Fix wrong handling of table containing strings
authorFrank Haverkamp <haver@vnet.ibm.com>
Mon, 11 Dec 2006 13:34:23 +0000 (14:34 +0100)
committerFrank Haverkamp <haver@vnet.ibm.com>
Mon, 11 Dec 2006 13:34:23 +0000 (14:34 +0100)
ubi-utils/src/pfi.c

index c8d5ee45154c10561d299db2d7e656a6e0c9d7c9..7b5755906d6be33704d6813f4bec9ef1eaa74319 100644 (file)
@@ -113,7 +113,9 @@ static const int key_descriptors_max[] = {
        sizeof(key_desc_v1)/sizeof(struct key_descriptor), /* version 1 */
 };
 
-static const char* modes[] = {"raw", "ubi", NULL}; /* order isn't arbitrary! */
+#define ARRAY_SIZE(a)    (sizeof(a) / sizeof((a)[0]))
+
+static const char* modes[] = {"raw", "ubi"}; /* order isn't arbitrary! */
 
 /* latest version contains all possible keys */
 static const struct key_descriptor *key_desc = key_desc_v1;
@@ -131,16 +133,11 @@ static const struct key_descriptor *key_desc = key_desc_v1;
 static int
 get_mode_no(const char* mode)
 {
-       const char* ptr = modes[0];
-       int i = 0;
-       while (ptr != NULL) {
-               if(strcmp(ptr, mode) == 0) {
-                       return i;
-               }
-               ptr++;
-               i++;
-       }
+       int i;
 
+       for (i = 0; i < (int)ARRAY_SIZE(modes); i++)
+               if (strcmp(mode, modes[i]) == 0)
+                       return i;
        return -1;
 }