diff options
author | Peter Mamonov <pmamonov@gmail.com> | 2018-01-15 14:32:32 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-17 09:12:17 +0100 |
commit | 5edc75f7a4961fd900796a52151d5a330c241fa2 (patch) | |
tree | 48c5fa13db0fb687b044c370bd5e553018c311f1 | |
parent | fd569c747ead69a5a6930d4cd6493e6d899a79df (diff) | |
download | barebox-5edc75f7a4961fd900796a52151d5a330c241fa2.tar.gz barebox-5edc75f7a4961fd900796a52151d5a330c241fa2.tar.xz |
lib: parse_area_spec: part of the area spec after -/+ should start with a digit
Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | lib/misc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/misc.c b/lib/misc.c index 7a1ac257f3..31c44a3f64 100644 --- a/lib/misc.c +++ b/lib/misc.c @@ -96,6 +96,9 @@ int parse_area_spec(const char *str, loff_t *start, loff_t *size) if (*str == '-') { /* beginning and end given */ + if (!isdigit(*(str + 1))) + return -1; + end = strtoull_suffix(str + 1, NULL, 0); if (end < _start) { printf("end < start\n"); @@ -107,6 +110,9 @@ int parse_area_spec(const char *str, loff_t *start, loff_t *size) if (*str == '+') { /* beginning and size given */ + if (!isdigit(*(str + 1))) + return -1; + *size = strtoull_suffix(str + 1, NULL, 0); goto success; } |