#25 Fixed crash on query with bad top domain

This commit is contained in:
Erik Ekman
2007-07-12 08:38:00 +00:00
committed by Erik Ekman
parent 285a412563
commit f932e57ce6
2 changed files with 9 additions and 4 deletions

View File

@@ -379,10 +379,14 @@ read_dns(int fd, struct query *q, char *buf, int buflen)
if (r > 0) {
dns_decode(buf, buflen, q, QR_QUERY, packet, r);
domain = strstr(q->name, topdomain);
rv = (int) (domain - q->name);
memcpy(buf, q->name, MIN(rv, buflen));
q->fromlen = addrlen;
memcpy((struct sockaddr*)&q->from, (struct sockaddr*)&from, addrlen);
if (domain) {
rv = (int) (domain - q->name);
memcpy(buf, q->name, MIN(rv, buflen));
q->fromlen = addrlen;
memcpy((struct sockaddr*)&q->from, (struct sockaddr*)&from, addrlen);
} else {
rv = 0;
}
} else if (r < 0) {
/* Error */
perror("recvfrom");