[parted-devel] [PATCH] mkpart: Allow negative start value when FS-TYPE is not given
Niklas Hambüchen
mail at nh2.me
Thu May 10 17:23:42 BST 2018
The manual had long documented that negative values are
allowed for both start and end values, but until now negative
start values were rejected if FS-TYPE was not given.
Example:
# parted --script -a optimal /dev/loop0 -- mklabel gpt mkpart primary ext4 -5MiB 100%
(succeeds)
# parted --script -a optimal /dev/loop0 -- mklabel gpt mkpart primary -5MiB 100%
parted: invalid token: -5MiB
Error: Expecting a file system type.
This commit fixes the latter error.
The issue was an insufficient lookahead in command line parsing,
looking only for digits when skipping over FS-TYPE.
The fix is including the minus '-' in the lookahead.
Originally reported as Debian bug #880035:
"parted: fails to use negative start value for 'mkpart' command without specyfying FS-TYPE"
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880035
Signed-off-by: Niklas Hambüchen <mail at nh2.me>
---
parted/parted.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parted/parted.c b/parted/parted.c
index b5e3b97..88f32b9 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -682,7 +682,7 @@ do_mkpart (PedDevice** dev, PedDisk** diskp)
peek_word = command_line_peek_word ();
if (part_type == PED_PARTITION_EXTENDED
- || (peek_word && isdigit (peek_word[0]))) {
+ || (peek_word && (isdigit (peek_word[0]) || peek_word[0] == '-'))) {
fs_type = NULL;
} else {
if (!command_line_get_fs_type (_("File system type?"),
--
2.7.4
More information about the parted-devel
mailing list