diff --git a/bin/tests/names/t_names.c b/bin/tests/names/t_names.c index b318d2982b..d90bfc5c21 100644 --- a/bin/tests/names/t_names.c +++ b/bin/tests/names/t_names.c @@ -121,20 +121,30 @@ chkdata(unsigned char *buf, size_t buflen, char *exp_data, if (('0' <= *q) && (*q <= '9')) *p = *q - '0'; - else if (('a' <= *q) && (*q <= 'z')) + else if (('a' <= *q) && (*q <= 'f')) *p = *q - 'a' + 10; - else if (('A' <= *q) && (*q <= 'Z')) + else if (('A' <= *q) && (*q <= 'F')) *p = *q - 'A' + 10; + else { + t_info("malformed comparison data\n"); + free(data); + return (-1); + } ++q; *p <<= 4; if (('0' <= *q) && (*q <= '9')) *p |= ((*q - '0') & 0x0f); - else if (('a' <= *q) && (*q <= 'z')) + else if (('a' <= *q) && (*q <= 'f')) *p |= ((*q - 'a' + 10) & 0x0f); - else if (('A' <= *q) && (*q <= 'Z')) + else if (('A' <= *q) && (*q <= 'F')) *p |= ((*q - 'A' + 10) & 0x0f); + else { + t_info("malformed comparison data\n"); + free(data); + return (-1); + } ++p; ++q; ++cnt; @@ -203,9 +213,9 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf) } if (('0' <= c) && (c <= '9')) val = c - '0'; - else if (('a' <= c) && (c <= 'z')) + else if (('a' <= c) && (c <= 'f')) val = c - 'a' + 10; - else if (('A' <= c) && (c <= 'Z')) + else if (('A' <= c) && (c <= 'F')) val = c - 'A'+ 10; else { (void)fclose(fp);