diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-08 18:56:32 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-08 18:56:32 +0000 |
commit | d69ce7d9d20543084bdf7cfe5e1bab83a728b00d (patch) | |
tree | 2f2dec5d8daee53c4246052f6d737028b4becd6d /src/dns/dns_lookup.c | |
parent | Releasing progress-linux version 3.7.10-0+deb12u1progress7u1. (diff) | |
download | postfix-d69ce7d9d20543084bdf7cfe5e1bab83a728b00d.tar.xz postfix-d69ce7d9d20543084bdf7cfe5e1bab83a728b00d.zip |
Merging upstream version 3.7.11.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/dns/dns_lookup.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/dns/dns_lookup.c b/src/dns/dns_lookup.c index 615902d..fa7fcb0 100644 --- a/src/dns/dns_lookup.c +++ b/src/dns/dns_lookup.c @@ -960,6 +960,8 @@ static int dns_get_answer(const char *orig_name, DNS_REPLY *reply, int type, resource_found++; rr->dnssec_valid = *maybe_secure ? reply->dnssec_ad : 0; *rrlist = dns_rr_append(*rrlist, rr); + if (DNS_RR_IS_TRUNCATED(*rrlist)) + break; } else if (status == DNS_NULLMX) { CORRUPT(status); /* TODO: use better name */ } else if (not_found_status != DNS_RETRY) @@ -1184,8 +1186,11 @@ int dns_lookup_rl(const char *name, unsigned flags, DNS_RR **rrlist, name, dns_strtype(type), dns_str_resflags(flags)); status = dns_lookup_x(name, type, flags, rrlist ? &rr : (DNS_RR **) 0, fqdn, why, rcode, lflags); - if (rrlist && rr) + if (rrlist && rr) { *rrlist = dns_rr_append(*rrlist, rr); + if (DNS_RR_IS_TRUNCATED(*rrlist)) + break; + } if (status == DNS_OK) { if (lflags & DNS_REQ_FLAG_STOP_OK) break; @@ -1236,8 +1241,11 @@ int dns_lookup_rv(const char *name, unsigned flags, DNS_RR **rrlist, name, dns_strtype(type), dns_str_resflags(flags)); status = dns_lookup_x(name, type, flags, rrlist ? &rr : (DNS_RR **) 0, fqdn, why, rcode, lflags); - if (rrlist && rr) + if (rrlist && rr) { *rrlist = dns_rr_append(*rrlist, rr); + if (DNS_RR_IS_TRUNCATED(*rrlist)) + break; + } if (status == DNS_OK) { if (lflags & DNS_REQ_FLAG_STOP_OK) break; |