diff options
| author | Thomas Richard | 2024-02-23 14:49:07 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2024-03-23 14:29:28 +0000 |
| commit | 6b242991a995c41769977efb010dc9f4e4ec3da2 (patch) | |
| tree | db29cfd806f05174570f9dd70396b72263039304 | |
| parent | 17de36575f1edf4287c1d92c7d7eb45c8ceca29e (diff) | |
| download | firmware-utils-6b242991a995c41769977efb010dc9f4e4ec3da2.tar.gz | |
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 <thomas.richard@bootlin.com>
| -rw-r--r-- | src/ptgen.c | 9 |
1 files changed, 6 insertions, 3 deletions
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 <heads> -s <sectors> -o <outputfile>\n" - " [-a 0..4] [-l <align kB>] [-G <guid>]\n" + " [-a <part number>] [-l <align kB>] [-G <guid>]\n" " [[-t <type> | -T <GPT part type>] [-r] [-N <name>] -p <size>[@<start>]...] \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; |