# HG changeset patch # User Rob Landley # Date 1328789367 21600 # Node ID 41b5ac08208f89571365fb536d5775a07d4b73d7 # Parent ab2636878ba0b2a484d37f7b20694485ad72c6da Make atolx() error_exit() if fed a string that doesn't convert entirely into an integer. diff -r ab2636878ba0 -r 41b5ac08208f lib/lib.c --- a/lib/lib.c Wed Feb 08 19:29:39 2012 -0600 +++ b/lib/lib.c Thu Feb 09 06:09:27 2012 -0600 @@ -480,14 +480,18 @@ // atol() with the kilo/mega/giga/tera/peta/exa extensions. // (zetta and yotta don't fit in 64 bits.) -long atolx(char *c) +long atolx(char *numstr) { - char *suffixes="kmgtpe", *end; - long val = strtol(c, &c, 0); + char *c, *suffixes="kmgtpe", *end; + long val = strtol(numstr, &c, 0); if (*c) { end = strchr(suffixes, tolower(*c)); if (end) val *= 1024L<<((end-suffixes)*10); + else { + while (isspace(*c)) c++; + if (*c) error_exit("not integer: %s", numstr); + } } return val;