diff options
author | jim <jim@13f79535-47bb-0310-9956-ffa450edef68> | 2002-08-19 21:33:23 +0000 |
---|---|---|
committer | jim <jim@13f79535-47bb-0310-9956-ffa450edef68> | 2002-08-19 21:33:23 +0000 |
commit | 98be9cabcf19c6af344fa4bd8c8d34d503cde959 (patch) | |
tree | 77f9b88acb5e5ab53f702ec641f1c2e9a06e2770 /strings | |
parent | ddabd7baec2d2a5980143ab1d5deaa64c933167c (diff) | |
download | libapr-98be9cabcf19c6af344fa4bd8c8d34d503cde959.tar.gz |
apr_atoi64 must use base 10
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@63818 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'strings')
-rw-r--r-- | strings/apr_strings.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/strings/apr_strings.c b/strings/apr_strings.c index 8a19945c7..c5a5fc519 100644 --- a/strings/apr_strings.c +++ b/strings/apr_strings.c @@ -326,7 +326,7 @@ APR_DECLARE(apr_int64_t) apr_strtoi64(const char *nptr, char **endptr, int base) * overflow. */ val = 0; - do { + for ( ; ; c = *s++) { if (c >= '0' && c <= '9') c -= '0'; #if (('Z' - 'A') == 25) @@ -358,11 +358,12 @@ APR_DECLARE(apr_int64_t) apr_strtoi64(const char *nptr, char **endptr, int base) if ((neg && (val > acc || (val -= c) > acc)) || (val < acc || (val += c) < acc)) { any = -1; + break; } else { acc = val; any = 1; } - } while (any >= 0 && (c = *s++)); + } if (any < 0) { acc = neg ? INT64_MIN : INT64_MAX; @@ -378,7 +379,7 @@ APR_DECLARE(apr_int64_t) apr_strtoi64(const char *nptr, char **endptr, int base) APR_DECLARE(apr_int64_t) apr_atoi64(const char *buf) { - return apr_strtoi64(buf, NULL, 0); + return apr_strtoi64(buf, NULL, 10); } APR_DECLARE(char *) apr_itoa(apr_pool_t *p, int n) |