--- busybox-1.3.1/util-linux/fdisk.c.orig 2007-06-06 21:18:45.000000000 -0500 +++ busybox-1.3.1/util-linux/fdisk.c 2007-06-06 21:17:20.000000000 -0500 @@ -331,13 +331,16 @@ read_hex(const struct systypes *sys) { unsigned long v; + char *e; while (1) { read_nonempty(_("Hex code (type L to list codes): ")); if (*line_ptr == 'l' || *line_ptr == 'L') { list_types(sys); continue; } - v = bb_strtoul(line_ptr, NULL, 16); + v = bb_strtoul(line_ptr, &e, 16); + /* Clear out EINVAL code if it's because of the trailing \n */ + if ((errno == EINVAL) && (*e == '\n')) errno = 0; if (errno || v > 0xff) continue; return v; }