tools/mkfwimage2: remove 256 length limit for partition images
[openwrt/openwrt.git] / tools / firmware-utils / src / mkfwimage2.c
index 9b050e1..89a9805 100644 (file)
@@ -139,7 +139,7 @@ static void usage(const char* progname)
             "\t-o <output file>\t - firmware output file, default: %s\n"
             "\t-p <name>:<offset>:<len>:<memaddr>:<entry>:<file>\n "
             "\t\t\t\t - create a partition from <file>\n"
-            "\t-z\t\t\t - set partition offsets to zero\n",
+            "\t-z\t\t\t - set partition offsets to zero\n"
             "\t-h\t\t\t - this help\n",
             VERSION, progname, DEFAULT_VERSION, MAGIC_HEADER,
             DEFAULT_FLASH_BASE, DEFAULT_OUTPUT_FILE);
@@ -197,6 +197,10 @@ int str2u32(char *arg, u_int32_t *val)
        return 0;
 }
 
+#ifndef STRINGIFY
+#define STRINGIFY2(X) #X
+#define STRINGIFY(X) STRINGIFY2(X)
+#endif
 static int image_layout_add_partition(const char *part_desc)
 {
        part_data_t *d;
@@ -212,7 +216,7 @@ static int image_layout_add_partition(const char *part_desc)
        }
 
        d = &im.parts[im.part_count];
-       t = sscanf(part_desc, "%15[a-zA-Z]:%15[0-9a-fA-Fx]:%15[0-9a-fA-Fx]:%15[0-9a-fA-Fx]:%15[0-9a-fA-Fx]:%256s",
+       t = sscanf(part_desc, "%15[-0-9a-zA-Z]:%15[0-9a-fA-Fx]:%15[0-9a-fA-Fx]:%15[0-9a-fA-Fx]:%15[0-9a-fA-Fx]:%"STRINGIFY(PATH_MAX)"s",
                        d->partition_name,
                        offset,
                        length,