summaryrefslogtreecommitdiff
path: root/util-linux/fdisk.c
diff options
context:
space:
mode:
authorDenis Vlasenko2006-11-29 18:15:52 +0000
committerDenis Vlasenko2006-11-29 18:15:52 +0000
commitc6ce8733dda7e6f9146e0a040048aebea0c2e589 (patch)
treefb5fd16229f7c9f34423c4f27ed47cc19e7434df /util-linux/fdisk.c
parenta35c9e91ba53073ff797d1d68d0d4e1836d934f0 (diff)
downloadbusybox-c6ce8733dda7e6f9146e0a040048aebea0c2e589.zip
busybox-c6ce8733dda7e6f9146e0a040048aebea0c2e589.tar.gz
cut 0.5k off mkfs.minix
assorted strtoul fixes (that's what brought me into minix)...
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 c226d6a..2f87f1c 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 */