summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hankins <dhankins@isc.org>2005-03-01 23:07:22 +0000
committerDavid Hankins <dhankins@isc.org>2005-03-01 23:07:22 +0000
commit171548e98ad04ed046436ae6f8a04f155850c5cc (patch)
treeeb092cfb02906f7d04bcdb6da33b9ff639ba1a3c
parentf72a1bcdda33808a4454741828ddcd0a100e86d9 (diff)
downloadisc-dhcp-171548e98ad04ed046436ae6f8a04f155850c5cc.tar.gz
- rt13481b...it turns out no tokens leave that loop as anything other than
NAME.
-rw-r--r--common/conflex.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/common/conflex.c b/common/conflex.c
index 0d451022..88c9be5c 100644
--- a/common/conflex.c
+++ b/common/conflex.c
@@ -34,7 +34,7 @@
#ifndef lint
static char copyright[] =
-"$Id: conflex.c,v 1.92.2.10 2005/03/01 16:26:19 dhankins Exp $ Copyright (c) 2004 Internet Systems Consortium. All rights reserved.\n";
+"$Id: conflex.c,v 1.92.2.11 2005/03/01 23:07:22 dhankins Exp $ Copyright (c) 2004 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@@ -426,28 +426,30 @@ static enum dhcp_token read_number (c, cfile)
* a NAME at '0x', and returned to NUMBER_OR_NAME once it's
* verified to be at least 0xf or less.
*/
- switch(token) {
+ switch(isascii(c) ? token : BREAK) {
case NUMBER:
- if(isascii(c) && isdigit(c))
+ if(isdigit(c))
break;
- token = NUMBER_OR_NAME;
/* FALLTHROUGH */
case NUMBER_OR_NAME:
- if(isascii(c) && isxdigit(c))
+ if(isxdigit(c)) {
+ token = NUMBER_OR_NAME;
break;
- token = NAME;
+ }
/* FALLTHROUGH */
case NAME:
- if((i == 2) && isascii(c) && isxdigit(c) &&
+ if((i == 2) && isxdigit(c) &&
(cfile->tokbuf[0] == '0') &&
((cfile->tokbuf[1] == 'x') ||
(cfile->tokbuf[1] == 'X'))) {
token = NUMBER_OR_NAME;
break;
- } else if((c == '-') || (c == '_') ||
- (isascii(c) && isalnum(c)))
+ } else if(((c == '-') || (c == '_') || isalnum(c))) {
+ token = NAME;
break;
-
+ }
+ /* FALLTHROUGH */
+ case BREAK:
/* At this point c is either EOF or part of the next
* token. If not EOF, rewind the file one byte so
* the next token is read from there.