[lvm-devel] master - lvmcmdline: enhance acceptance of size numbers
Zdenek Kabelac
zkabelac at sourceware.org
Mon Jul 17 11:40:49 UTC 2017
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=9b4b5d449ef7045d33b8d8d7e69011d16f4bb8ab
Commit: 9b4b5d449ef7045d33b8d8d7e69011d16f4bb8ab
Parent: f7e62bc55ccc7ab012325ba2ecc4a2009339989a
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Sun Jul 16 10:30:07 2017 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Jul 17 12:32:18 2017 +0200
lvmcmdline: enhance acceptance of size numbers
Explictely detect duplicate sing symbols and leave the rest of
double number validation on 'strtod()' function. This way
we can also accept size like:
lvcreate -L.1M
We already accept -L0.1M - but it's common to accept numbers
starting with leading '.' - just as 'strtod()' accepts it).
---
tools/lvmcmdline.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 9cf2144..3ff0d1d 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -560,8 +560,10 @@ static int _size_arg(struct cmd_context *cmd __attribute__((unused)),
av->sign = SIGN_NONE;
}
- if (!isdigit(*val))
+ if (*val == '+' || *val == '-') {
+ log_error("Multiple sign symbols detected.");
return 0;
+ }
errno = 0;
v = strtod(val, &ptr);
@@ -596,6 +598,7 @@ static int _size_arg(struct cmd_context *cmd __attribute__((unused)),
break;
if (i < 0) {
+ log_error("Can't parse size argument.");
return 0;
} else if (i == 7) {
/* v is already in sectors */
More information about the lvm-devel
mailing list