|
@@ -437,8 +437,8 @@ cached_resolve_add_answer(cached_resolve_t *resolve,
|
|
|
if (resolve->res_status_ipv4 != RES_STATUS_INFLIGHT)
|
|
|
return;
|
|
|
|
|
|
- if (dns_result == DNS_ERR_NONE && answer_addr) {
|
|
|
- tor_assert(tor_addr_family(answer_addr) == AF_INET);
|
|
|
+ if (dns_result == DNS_ERR_NONE && answer_addr &&
|
|
|
+ tor_addr_family(answer_addr) == AF_INET) {
|
|
|
resolve->result_ipv4.addr_ipv4 = tor_addr_to_ipv4h(answer_addr);
|
|
|
resolve->res_status_ipv4 = RES_STATUS_DONE_OK;
|
|
|
} else {
|
|
@@ -450,8 +450,8 @@ cached_resolve_add_answer(cached_resolve_t *resolve,
|
|
|
if (resolve->res_status_ipv6 != RES_STATUS_INFLIGHT)
|
|
|
return;
|
|
|
|
|
|
- if (dns_result == DNS_ERR_NONE && answer_addr) {
|
|
|
- tor_assert(tor_addr_family(answer_addr) == AF_INET6);
|
|
|
+ if (dns_result == DNS_ERR_NONE && answer_addr &&
|
|
|
+ tor_addr_family(answer_addr) == AF_INET6) {
|
|
|
memcpy(&resolve->result_ipv6.addr_ipv6,
|
|
|
tor_addr_to_in6(answer_addr),
|
|
|
sizeof(struct in6_addr));
|