diff options
author | Denis Vlasenko | 2006-11-29 18:15:52 +0000 |
---|---|---|
committer | Denis Vlasenko | 2006-11-29 18:15:52 +0000 |
commit | c6ce8733dda7e6f9146e0a040048aebea0c2e589 (patch) | |
tree | fb5fd16229f7c9f34423c4f27ed47cc19e7434df /util-linux/fdisk.c | |
parent | a35c9e91ba53073ff797d1d68d0d4e1836d934f0 (diff) | |
download | busybox-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.c | 9 |
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 */ |