40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
|
|
From 4ace37bf7386e73af1d295d206b101c27a9edbad Mon Sep 17 00:00:00 2001
|
||
|
|
From: Mark Andrews <marka@isc.org>
|
||
|
|
Date: Wed, 24 Nov 2021 11:03:19 +1100
|
||
|
|
Subject: [PATCH] Do not convert ISC_R_NOSPACE to DNS_R_SERVFAIL too early
|
||
|
|
|
||
|
|
The parsing loop needs to process ISC_R_NOSPACE to properly
|
||
|
|
size the buffer. If result is still ISC_R_NOSPACE at the end
|
||
|
|
of the parsing loop set result to DNS_R_SERVFAIL.
|
||
|
|
|
||
|
|
(cherry picked from commit 08f1cba096243cd14041731b7ea1ad45e54e87b0)
|
||
|
|
Conflict: NA
|
||
|
|
Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/4ace37bf7386e73af1d295d206b101c27a9edbad
|
||
|
|
---
|
||
|
|
lib/dns/sdlz.c | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/lib/dns/sdlz.c b/lib/dns/sdlz.c
|
||
|
|
index c8a615a0f3..0b46fb9efd 100644
|
||
|
|
--- a/lib/dns/sdlz.c
|
||
|
|
+++ b/lib/dns/sdlz.c
|
||
|
|
@@ -1875,7 +1875,6 @@ dns_sdlz_putrr(dns_sdlzlookup_t *lookup, const char *type, dns_ttl_t ttl,
|
||
|
|
mctx, rdatabuf, &lookup->callbacks);
|
||
|
|
if (result != ISC_R_SUCCESS) {
|
||
|
|
isc_buffer_free(&rdatabuf);
|
||
|
|
- result = DNS_R_SERVFAIL;
|
||
|
|
}
|
||
|
|
if (size >= 65535) {
|
||
|
|
break;
|
||
|
|
@@ -1887,6 +1886,7 @@ dns_sdlz_putrr(dns_sdlzlookup_t *lookup, const char *type, dns_ttl_t ttl,
|
||
|
|
} while (result == ISC_R_NOSPACE);
|
||
|
|
|
||
|
|
if (result != ISC_R_SUCCESS) {
|
||
|
|
+ result = DNS_R_SERVFAIL;
|
||
|
|
goto failure;
|
||
|
|
}
|
||
|
|
|
||
|
|
--
|
||
|
|
2.23.0
|
||
|
|
|