From: Thomas Richard Date: Fri, 23 Feb 2024 14:49:07 +0000 (+0100) Subject: ptgen: fix limitation for active partition in GPT X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=6b242991a995c41769977efb010dc9f4e4ec3da2;p=project%2Ffirmware-utils.git ptgen: fix limitation for active partition in GPT In GPT there is no reason to limit the active partition number to 4. This limitation is only for MBR, as it corresponds to the maximum number of primary partitions. Signed-off-by: Thomas Richard --- diff --git a/src/ptgen.c b/src/ptgen.c index b231c28..c7d6bc0 100644 --- a/src/ptgen.c +++ b/src/ptgen.c @@ -569,7 +569,7 @@ fail: static void usage(char *prog) { fprintf(stderr, "Usage: %s [-v] [-n] [-g] -h -s -o \n" - " [-a 0..4] [-l ] [-G ]\n" + " [-a ] [-l ] [-G ]\n" " [[-t | -T ] [-r] [-N ] -p [@]...] \n", prog); exit(EXIT_FAILURE); } @@ -668,8 +668,6 @@ int main (int argc, char **argv) break; case 'a': active = (int)strtoul(optarg, NULL, 0); - if ((active < 0) || (active > 4)) - active = 0; break; case 'l': kb_align = (int)strtoul(optarg, NULL, 0) * 2; @@ -700,6 +698,11 @@ int main (int argc, char **argv) if (argc || (!use_guid_partition_table && ((heads <= 0) || (sectors <= 0))) || !filename) usage(argv[0]); + if ((use_guid_partition_table && active > GPT_ENTRY_MAX) || + (!use_guid_partition_table && active > MBR_ENTRY_MAX) || + active < 0) + active = 0; + if (use_guid_partition_table) { heads = 254; sectors = 63;