diff options
| author | Karel Zak <kzak@redhat.com> | 2020-04-27 11:15:00 +0200 |
|---|---|---|
| committer | Karel Zak <kzak@redhat.com> | 2020-04-27 11:15:00 +0200 |
| commit | 243fff1dc6c3d59d9c3eb9ced472584b5ae8bbd2 (patch) | |
| tree | 35f7e551ca9387e4cd235cce00457a3e6dbd8006 /libfdisk/src/script.c | |
| parent | 79ef974a68d4e70b1ad69a18d70d8a04c9d00bd5 (diff) | |
| download | util-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.c | 9 |
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) |
