3299. [bug] Make SDB handle errors from database drivers better.

[RT #28534]
This commit is contained in:
Mark Andrews 2012-03-28 10:21:13 +11:00
parent af7ddf2901
commit 081fda43c1
3 changed files with 16 additions and 1 deletions

View file

@ -1,3 +1,6 @@
3299. [bug] Make SDB handle errors from database drivers better.
[RT #28534]
3298. [bug] Named could dereference a NULL pointer in
zmgr_start_xfrin_ifquota if the zone was being removed.
[RT #28419]

View file

@ -3379,6 +3379,11 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
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_findext(db, cname, version,
dns_rdatatype_nsec,

View file

@ -845,10 +845,17 @@ findext(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
dns_name_getlabelsequence(name, nlabels - i, i, xname);
result = findnodeext(db, xname, ISC_FALSE, methods,
clientinfo, &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