jim 2002/08/19 14:33:23
Modified: strings apr_strings.c
Log:
apr_atoi64 must use base 10
Revision Changes Path
1.39 +4 -3 apr/strings/apr_strings.c
Index: apr_strings.c
===================================================================
RCS file: /home/cvs/apr/strings/apr_strings.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- apr_strings.c 13 Aug 2002 13:51:53 -0000 1.38
+++ apr_strings.c 19 Aug 2002 21:33:23 -0000 1.39
@@ -326,7 +326,7 @@
* overflow.
*/
val = 0;
- do {
+ for ( ; ; c = *s++) {
if (c >= '0' && c <= '9')
c -= '0';
#if (('Z' - 'A') == 25)
@@ -358,11 +358,12 @@
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_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)