sock_dns: correctly report too short messages

This commit is contained in:
Martine Lenders 2019-01-29 19:10:36 +01:00
parent 782b181b63
commit b30cdb51a5

View File

@ -221,9 +221,15 @@ int sock_dns_query(const char *domain_name, void *addr_out, int family)
continue;
}
res = sock_udp_recv(&sock_dns, reply_buf, sizeof(reply_buf), 1000000LU, NULL);
if ((res > 0) && (res > (int)DNS_MIN_REPLY_LEN)) {
if ((res = _parse_dns_reply(reply_buf, res, addr_out, family)) > 0) {
goto out;
if (res > 0) {
if (res > (int)DNS_MIN_REPLY_LEN) {
if ((res = _parse_dns_reply(reply_buf, res, addr_out,
family)) > 0) {
goto out;
}
}
else {
res = -EBADMSG;
}
}
}