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>