]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: (gpt) follow explicit size, fiz size+1 buf
authorKarel Zak <kzak@redhat.com>
Thu, 9 Oct 2014 10:10:09 +0000 (12:10 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 9 Oct 2014 10:10:09 +0000 (12:10 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libfdisk/src/gpt.c

index 8947a722f9ea995d3f7229dbf45a584551eae8dc..d7b3986781059d6ee0d31670cef5a31d9727d4c5 100644 (file)
@@ -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;
                }
        }