]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use isdigit instead of strtoul if we're just discarding the result
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 25 May 2017 17:41:51 +0000 (13:41 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 25 May 2017 19:32:38 +0000 (15:32 -0400)
src/lib/util/print.c

index 33103df53884c046a235f708a6b64787b6bd5146..698f557056f21805a1f37a1948e48060c4174f3b 100644 (file)
@@ -468,10 +468,10 @@ char *fr_vasprintf(TALLOC_CTX *ctx, char const *fmt, va_list ap)
        va_copy(ap_q, ap_p);
 
        do {
-               char *q;
-               char len[2] = { '\0', '\0' };
-               long precision = 0;
-               char *subst = NULL;
+               char const      *q;
+               char            len[2] = { '\0', '\0' };
+               long            precision = 0;
+               char            *subst = NULL;
 
                if ((*p != '%') || (*++p == '%')) {
                        fmt_q = p + 1;
@@ -481,7 +481,7 @@ char *fr_vasprintf(TALLOC_CTX *ctx, char const *fmt, va_list ap)
                /*
                 *      Check for parameter field
                 */
-               (void) strtoul(p, &q, 10);
+               for (q = p; isdigit(*q); q++);
                if ((q != p) && (*q == '$')) {
                        p = q + 1;
                }
@@ -519,7 +519,7 @@ char *fr_vasprintf(TALLOC_CTX *ctx, char const *fmt, va_list ap)
                        (void) va_arg(ap_q, int);
                        p++;
                } else {
-                       (void) strtoul(p, &q, 10);
+                       for (q = p; isdigit(*q); q++);
                        p = q;
                }
 
@@ -527,9 +527,11 @@ char *fr_vasprintf(TALLOC_CTX *ctx, char const *fmt, va_list ap)
                 *      Check for precision field
                 */
                if (*p == '.') {
+                       char *r;
+
                        p++;
-                       precision = strtoul(p, &q, 10);
-                       p = q;
+                       precision = strtoul(p, &r, 10);
+                       p = r;
                }
 
                /*