diff --git a/src/resolvers.c b/src/resolvers.c index 6556cc8a5..518421eca 100644 --- a/src/resolvers.c +++ b/src/resolvers.c @@ -1430,7 +1430,7 @@ static int resolv_validate_dns_response(unsigned char *resp, unsigned char *bufe len = resolv_read_name(resp, bufend, reader, tmpname, DNS_MAX_NAME_SIZE, &offset, 0); if (len == 0) - continue; + goto invalid_resp; if (reader + offset + 10 >= bufend) goto invalid_resp; @@ -1466,11 +1466,8 @@ static int resolv_validate_dns_response(unsigned char *resp, unsigned char *bufe offset = 0; len = resolv_read_name(resp, bufend, reader, tmpname, DNS_MAX_NAME_SIZE, &offset, 0); - if (len == 0) { - pool_free(resolv_answer_item_pool, answer_record); - answer_record = NULL; - continue; - } + if (len == 0) + goto invalid_resp; memcpy(answer_record->name, tmpname, len); answer_record->name[len] = 0;