From: Karel Zak Date: Tue, 22 Aug 2017 12:54:27 +0000 (+0200) Subject: libfdisk: (dos) use size-=1 when alignment not used later X-Git-Tag: v2.30.2~11 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=7e99818e51bd25f79b9a676c960073a812854ccb;p=thirdparty%2Futil-linux.git libfdisk: (dos) use size-=1 when alignment not used later Signed-off-by: Karel Zak --- diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index 44d0221552..e5deedf2c7 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -1181,7 +1181,7 @@ static int add_partition(struct fdisk_context *cxt, size_t n, else if (pa && fdisk_partition_has_size(pa)) { stop = start + pa->size; isrel = pa->size_explicit ? 0 : 1; - if (!isrel && stop > start) + if ((!isrel || !alignment_required(cxt)) && stop > start) stop -= 1; } else { /* ask user by dialog */ @@ -1227,7 +1227,7 @@ static int add_partition(struct fdisk_context *cxt, size_t n, } } - DBG(LABEL, ul_debug("DOS: raw stop: %ju", (uintmax_t) stop)); + DBG(LABEL, ul_debug("DOS: raw stop: %ju [limit %ju]", (uintmax_t) stop, (uintmax_t) limit)); if (stop > limit) stop = limit; @@ -1237,7 +1237,7 @@ static int add_partition(struct fdisk_context *cxt, size_t n, isrel = 0; if (stop > start) stop -= 1; - DBG(LABEL, ul_debug("DOS: don't align end os tiny partition [start=%ju, stop=%ju, grain=%lu]", + DBG(LABEL, ul_debug("DOS: don't align end of tiny partition [start=%ju, stop=%ju, grain=%lu]", (uintmax_t)start, (uintmax_t)stop, cxt->grain)); }