+3299. [bug] Make SDB handle errors from database drivers better.
+ [RT #28534]
+
--- 9.6-ESV-R6 released ---
3298. [bug] Named could dereference a NULL pointer in
dns_name_copy(name, cname, NULL);
while (result == DNS_R_NXDOMAIN) {
labels = dns_name_countlabels(cname) - 1;
+ /*
+ * Sanity check.
+ */
+ if (labels == 0U)
+ goto cleanup;
dns_name_split(cname, labels, NULL, cname);
result = dns_db_find(db, cname, version,
dns_rdatatype_nsec,
*/
dns_name_getlabelsequence(name, nlabels - i, i, xname);
result = findnode(db, xname, ISC_FALSE, &node);
- if (result != ISC_R_SUCCESS) {
+ if (result == ISC_R_NOTFOUND) {
+ /*
+ * No data at zone apex?
+ */
+ if (i == olabels)
+ return (DNS_R_BADDB);
result = DNS_R_NXDOMAIN;
continue;
}
+ if (result != ISC_R_SUCCESS)
+ return (result);
/*
* Look for a DNAME at the current label, unless this is