aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2019-08-17 15:03:09 +0200
committerMaria Matejka <mq@ucw.cz>2020-05-01 15:19:12 +0200
commit0c3b8ffe25f43e59dfe8b1aeb219ff1cb4c6aa2b (patch)
treed4124d940f9aabb9fa74b5bc7f26f87e6f849b5f
parentcdde3550dc188f493daf82ef9d9acf8b85d9d722 (diff)
downloadbird-0c3b8ffe25f43e59dfe8b1aeb219ff1cb4c6aa2b.tar.gz
Lexer: strtoul shall never set endptr to NULL; it should be an error
-rw-r--r--conf/cf-lex.l14
1 files changed, 7 insertions, 7 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 1d6cae2c..9ea05e9d 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -169,7 +169,7 @@ WHITE [ \t]
errno = 0;
l = bstrtoul10(yytext, &e);
- if (e && (*e != ':') || (errno == ERANGE) || (l >> 32))
+ if (!e || (*e != ':') || (errno == ERANGE) || (l >> 32))
cf_error("ASN out of range");
if (l >> 16)
@@ -187,7 +187,7 @@ WHITE [ \t]
errno = 0;
l = bstrtoul10(e+1, &e);
- if (e && *e || (errno == ERANGE) || (l >> len2))
+ if (!e || *e || (errno == ERANGE) || (l >> len2))
cf_error("Number out of range");
cf_lval.i64 |= l;
@@ -214,13 +214,13 @@ WHITE [ \t]
errno = 0;
l = bstrtoul10(yytext+2, &e);
- if (e && (*e != ':') || (errno == ERANGE) || (l >> len1))
+ if (!e || (*e != ':') || (errno == ERANGE) || (l >> len1))
cf_error("ASN out of range");
cf_lval.i64 |= ((u64) l) << len2;
errno = 0;
l = bstrtoul10(e+1, &e);
- if (e && *e || (errno == ERANGE) || (l >> len2))
+ if (!e || *e || (errno == ERANGE) || (l >> len2))
cf_error("Number out of range");
cf_lval.i64 |= l;
@@ -242,7 +242,7 @@ WHITE [ \t]
errno = 0;
l = bstrtoul10(e, &e);
- if (e && *e || (errno == ERANGE) || (l >> 16))
+ if (!e || *e || (errno == ERANGE) || (l >> 16))
cf_error("Number out of range");
cf_lval.i64 |= l;
@@ -266,7 +266,7 @@ WHITE [ \t]
unsigned long int l;
errno = 0;
l = bstrtoul16(yytext+2, &e);
- if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
+ if (!e || *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
cf_error("Number out of range");
cf_lval.i = l;
return NUM;
@@ -277,7 +277,7 @@ WHITE [ \t]
unsigned long int l;
errno = 0;
l = bstrtoul10(yytext, &e);
- if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
+ if (!e || *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
cf_error("Number out of range");
cf_lval.i = l;
return NUM;