summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2019-06-13 14:27:58 +0200
committerMaria Matejka <mq@ucw.cz>2019-06-13 14:27:58 +0200
commit5c864e2cfaf5ff5e8e3db3ccd746162fbc7aac5b (patch)
tree01fbbd6cd1a7122fcdca1a38c48d6e854763ad9d
parent87c82334a77dfa3fea3057fa6d4bcf8558f203a4 (diff)
String: bstrtoul macro expanded to bstrtoul10 and 16
-rw-r--r--conf/cf-lex.l14
-rw-r--r--lib/ip.c2
-rw-r--r--lib/string.h1
3 files changed, 8 insertions, 9 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 83e4e77c..09f3db8d 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -168,7 +168,7 @@ WHITE [ \t]
char *e;
errno = 0;
- l = bstrtoul(yytext, &e, 10);
+ l = bstrtoul10(yytext, &e);
if (e && (*e != ':') || (errno == ERANGE) || (l >> 32))
cf_error("ASN out of range");
@@ -186,7 +186,7 @@ WHITE [ \t]
}
errno = 0;
- l = bstrtoul(e+1, &e, 10);
+ l = bstrtoul10(e+1, &e);
if (e && *e || (errno == ERANGE) || (l >> len2))
cf_error("Number out of range");
cf_lval.i64 |= l;
@@ -213,13 +213,13 @@ WHITE [ \t]
}
errno = 0;
- l = bstrtoul(yytext+2, &e, 10);
+ l = bstrtoul10(yytext+2, &e);
if (e && (*e != ':') || (errno == ERANGE) || (l >> len1))
cf_error("ASN out of range");
cf_lval.i64 |= ((u64) l) << len2;
errno = 0;
- l = bstrtoul(e+1, &e, 10);
+ l = bstrtoul10(e+1, &e);
if (e && *e || (errno == ERANGE) || (l >> len2))
cf_error("Number out of range");
cf_lval.i64 |= l;
@@ -241,7 +241,7 @@ WHITE [ \t]
cf_lval.i64 |= ((u64) ip4_to_u32(ip4)) << 16;
errno = 0;
- l = bstrtoul(e, &e, 10);
+ l = bstrtoul10(e, &e);
if (e && *e || (errno == ERANGE) || (l >> 16))
cf_error("Number out of range");
cf_lval.i64 |= l;
@@ -265,7 +265,7 @@ WHITE [ \t]
char *e;
unsigned long int l;
errno = 0;
- l = bstrtoul(yytext+2, &e, 16);
+ l = bstrtoul16(yytext+2, &e);
if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
cf_error("Number out of range");
cf_lval.i = l;
@@ -276,7 +276,7 @@ WHITE [ \t]
char *e;
unsigned long int l;
errno = 0;
- l = bstrtoul(yytext, &e, 10);
+ l = bstrtoul10(yytext, &e);
if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
cf_error("Number out of range");
cf_lval.i = l;
diff --git a/lib/ip.c b/lib/ip.c
index 0f5a5348..2d195160 100644
--- a/lib/ip.c
+++ b/lib/ip.c
@@ -245,7 +245,7 @@ ip4_pton(const char *a, ip4_addr *o)
char *d, *c = strchr(a, '.');
if (!c != !i)
return 0;
- l = bstrtoul(a, &d, 10);
+ l = bstrtoul10(a, &d);
if (((d != c) && *d) || (l > 255))
return 0;
ia = (ia << 8) | l;
diff --git a/lib/string.h b/lib/string.h
index 5f7c4666..6e549cb7 100644
--- a/lib/string.h
+++ b/lib/string.h
@@ -24,7 +24,6 @@ int buffer_vprint(buffer *buf, const char *fmt, va_list args);
int buffer_print(buffer *buf, const char *fmt, ...);
void buffer_puts(buffer *buf, const char *str);
-#define bstrtoul(str, end, base) bstrtoul##base(str, end)
u64 bstrtoul10(const char *str, char **end);
u64 bstrtoul16(const char *str, char **end);