From 6b242991a995c41769977efb010dc9f4e4ec3da2 Mon Sep 17 00:00:00 2001 From: Thomas Richard Date: Fri, 23 Feb 2024 15:49:07 +0100 Subject: [PATCH] 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 --- src/ptgen.c | 9 ++++++--- 1 file 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 -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; -- 2.30.2