summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorjim <jim@13f79535-47bb-0310-9956-ffa450edef68>2002-08-19 21:33:23 +0000
committerjim <jim@13f79535-47bb-0310-9956-ffa450edef68>2002-08-19 21:33:23 +0000
commit98be9cabcf19c6af344fa4bd8c8d34d503cde959 (patch)
tree77f9b88acb5e5ab53f702ec641f1c2e9a06e2770 /strings
parentddabd7baec2d2a5980143ab1d5deaa64c933167c (diff)
downloadlibapr-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.c7
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)