aboutsummaryrefslogtreecommitdiff
path: root/util-linux/fdisk.c
diff options
context:
space:
mode:
Diffstat (limited to 'util-linux/fdisk.c')
-rw-r--r--util-linux/fdisk.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index c226d6a00..2f87f1c60 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -330,13 +330,16 @@ read_maybe_empty(const char *mesg)
static int
read_hex(const struct systypes *sys)
{
+ unsigned long v;
while (1) {
read_nonempty(_("Hex code (type L to list codes): "));
- if (*line_ptr == 'l' || *line_ptr == 'L')
+ if (*line_ptr == 'l' || *line_ptr == 'L') {
list_types(sys);
- else if (isxdigit(*line_ptr)) {
- return strtoul(line_ptr, NULL, 16);
+ continue;
}
+ v = bb_strtoul(line_ptr, NULL, 16);
+ if (errno || v > 0xff) continue;
+ return v;
}
}
#endif /* CONFIG_FEATURE_FDISK_WRITABLE */