Annotation of embedaddon/ntp/libntp/octtoint.c, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * octtoint - convert an ascii string in octal to an unsigned
                      3:  *           long, with error checking
                      4:  */
                      5: #include <stdio.h>
                      6: #include <ctype.h>
                      7: 
                      8: #include "ntp_stdlib.h"
                      9: 
                     10: int
                     11: octtoint(
                     12:        const char *str,
                     13:        u_long *ival
                     14:        )
                     15: {
                     16:        register u_long u;
                     17:        register const char *cp;
                     18: 
                     19:        cp = str;
                     20: 
                     21:        if (*cp == '\0')
                     22:            return 0;
                     23: 
                     24:        u = 0;
                     25:        while (*cp != '\0') {
                     26:                if (!isdigit((int)*cp) || *cp == '8' || *cp == '9')
                     27:                    return 0;
                     28:                if (u >= 0x20000000)
                     29:                    return 0;   /* overflow */
                     30:                u <<= 3;
                     31:                u += *cp++ - '0';       /* ascii dependent */
                     32:        }
                     33:        *ival = u;
                     34:        return 1;
                     35: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>