Skip to content

Commit

Permalink
dns_msg: rename addrlen -> rdlen
Browse files Browse the repository at this point in the history
  • Loading branch information
benpicco committed Sep 9, 2024
1 parent 6c59aa2 commit d88d34c
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions sys/net/application_layer/dns/msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,38 +175,38 @@ int dns_msg_parse_reply(const uint8_t *buf, size_t len, int family,
}
bufpos += RR_TTL_LENGTH;

unsigned addrlen = ntohs(_get_short(bufpos));
unsigned rdlen = ntohs(_get_short(bufpos));
bufpos += RR_RDLENGTH_LENGTH;
if ((bufpos + addrlen) > buflim) {
if ((bufpos + rdlen) > buflim) {
return -EBADMSG;
}

DEBUG("dns_msg: type: %u, class: %u, len: %u\n", _type, class, addrlen);
DEBUG("dns_msg: type: %u, class: %u, len: %u\n", _type, class, rdlen);

/* skip unwanted answers */
if ((class != DNS_CLASS_IN) ||
((_type == DNS_TYPE_A) && (family == AF_INET6)) ||
((_type == DNS_TYPE_AAAA) && (family == AF_INET)) ||
! ((_type == DNS_TYPE_A) || ((_type == DNS_TYPE_AAAA))
)) {
if (addrlen > len) {
if (rdlen > len) {
/* buffer wraps around memory space */
return -EBADMSG;
}
bufpos += addrlen;
bufpos += rdlen;
/* other out-of-bound is checked in `_skip_hostname()` at start of
* loop */
continue;
}
if (((addrlen != INADDRSZ) && (family == AF_INET)) ||
((addrlen != IN6ADDRSZ) && (family == AF_INET6)) ||
((addrlen != IN6ADDRSZ) && (addrlen != INADDRSZ) &&
if (((rdlen != INADDRSZ) && (family == AF_INET)) ||
((rdlen != IN6ADDRSZ) && (family == AF_INET6)) ||
((rdlen != IN6ADDRSZ) && (rdlen != INADDRSZ) &&
(family == AF_UNSPEC))) {
return -EBADMSG;
}

memcpy(addr_out, bufpos, addrlen);
return addrlen;
memcpy(addr_out, bufpos, rdlen);
return rdlen;
}

return -EBADMSG;
Expand Down

0 comments on commit d88d34c

Please sign in to comment.