From 6a6dee3132db0d62a827ddf02d88c899f7c15c31 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sun, 4 Nov 2007 15:32:59 -0600 Subject: Fix from Charlie Shepherd: at end of string, don't match the null terminator as a yottabyte suffix. Also, the shift increment needs to be a long constant on 64-bit platforms for the top three suffixes to mean anything. --- lib/lib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/lib.c b/lib/lib.c index 95ba1216..ad84dff5 100644 --- a/lib/lib.c +++ b/lib/lib.c @@ -422,8 +422,10 @@ long atolx(char *c) char *suffixes="kmgtpe", *end; long val = strtol(c, &c, 0); - end = strchr(suffixes, tolower(*c)); - if (end) val *= 1024<<((end-suffixes)*10); + if (*c) { + end = strchr(suffixes, tolower(*c)); + if (end) val *= 1024L<<((end-suffixes)*10); + } return val; } -- cgit v1.2.3