summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libfdisk/src/gpt.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c
index 8947a722f..d7b398678 100644
--- a/libfdisk/src/gpt.c
+++ b/libfdisk/src/gpt.c
@@ -1997,7 +1997,7 @@ static int gpt_add_partition(
user_l = user_f + pa->size - 1;
DBG(LABEL, ul_debug("size defined: %ju, end: %ju (last possible: %ju)",
pa->size, user_l, dflt_l));
- if (user_l != dflt_l)
+ if (user_l != dflt_l && !pa->size_explicit)
user_l = fdisk_align_lba_in_range(cxt, user_l, user_f, dflt_l) - 1;
} else if (pa && pa->end_follow_default) {
@@ -2029,7 +2029,10 @@ static int gpt_add_partition(
if (user_l + (cxt->grain / cxt->sector_size) > dflt_l)
user_l = dflt_l;
*/
- } if (user_l > user_f && user_l <= disk_l)
+ } else
+ user_l -= 1;
+
+ if (user_l > user_f && user_l <= disk_l)
break;
}
}