aboutsummaryrefslogtreecommitdiffstats
path: root/libfdisk/src/script.c
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2020-04-27 11:15:00 +0200
committerKarel Zak <kzak@redhat.com>2020-04-27 11:15:00 +0200
commit243fff1dc6c3d59d9c3eb9ced472584b5ae8bbd2 (patch)
tree35f7e551ca9387e4cd235cce00457a3e6dbd8006 /libfdisk/src/script.c
parent79ef974a68d4e70b1ad69a18d70d8a04c9d00bd5 (diff)
downloadutil-linux-243fff1dc6c3d59d9c3eb9ced472584b5ae8bbd2.tar.gz
libfdisk: (script) fix partno_from_devname()
Addresses: https://github.com/karelzak/util-linux/issues/1015 Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/script.c')
-rw-r--r--libfdisk/src/script.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c
index cc53c3b7db..8af2e54cd2 100644
--- a/libfdisk/src/script.c
+++ b/libfdisk/src/script.c
@@ -953,12 +953,17 @@ static int partno_from_devname(char *s)
size_t sz;
char *end, *p;
+ if (!s || !*s)
+ return -1;
+
sz = rtrim_whitespace((unsigned char *)s);
- p = s + sz - 1;
+ end = p = s + sz;
while (p > s && isdigit(*(p - 1)))
p--;
-
+ if (p == end)
+ return -1;
+ end = NULL;
errno = 0;
pno = strtol(p, &end, 10);
if (errno || !end || p == end)