mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-29 13:38:26 +00:00
Fix resolution of unusual ip6.arpa names
Before this commit, BIND was unable to resolve ip6.arpa names like the one reported in issue #1847 when using query minimization. As reported in the issue, an attempt to resolve a name like 'rec-test-dom-158937817846788.test123.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.3.4.3.5.4.0.8.2.6.0.1.0.0.2.ip6.arpa' using default settings would fail. The reason was that query minimization algorithm in 'fctx_minimize_qname' would divide any ip6.arpa names in increasing number of labels, 7,11, ... up to 35, thus limiting the destination name (minimized) to a number of 35 labels. In case the last query minimization attempt (with 35 labels) would fail with NXDOMAIN, BIND would attempt the query mininimization again with the exact same QNAME, limited on the 35 labels, and that in turn would fail again. This fix avoids this fail loop by considering the extra labels that may appear in the leftmost part of an ip6.arpa name, those after the IPv6 part.
This commit is contained in:
parent
045478ad6a
commit
230d79c191
@ -10646,8 +10646,10 @@ fctx_minimize_qname(fetchctx_t *fctx) {
|
||||
fctx->qmin_labels = 17;
|
||||
} else if (fctx->qmin_labels < 19) {
|
||||
fctx->qmin_labels = 19;
|
||||
} else if (fctx->qmin_labels > 19) {
|
||||
} else if (fctx->qmin_labels < 35) {
|
||||
fctx->qmin_labels = 35;
|
||||
} else {
|
||||
fctx->qmin_labels = nlabels;
|
||||
}
|
||||
} else if (fctx->qmin_labels > DNS_QMIN_MAXLABELS) {
|
||||
fctx->qmin_labels = DNS_MAX_LABELS + 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user