diff --git a/src/util.c b/src/util.c index 079fe44..3806972 100644 --- a/src/util.c +++ b/src/util.c @@ -524,20 +524,20 @@ void prettyprint_time(char *buf, unsigned int t) int parse_hex(char *in, unsigned char *out, int maxlen, unsigned int *wildcard_mask, int *mac_type) { - int mask = 0, i = 0; + int done = 0, mask = 0, i = 0; char *r; if (mac_type) *mac_type = 0; - while (maxlen == -1 || i < maxlen) + while (!done && (maxlen == -1 || i < maxlen)) { for (r = in; *r != 0 && *r != ':' && *r != '-' && *r != ' '; r++) if (*r != '*' && !isxdigit((unsigned char)*r)) return -1; if (*r == 0) - maxlen = i; + done = 1; if (r != in ) {