diff options
Diffstat (limited to 'lib/dns/sdb.c')
-rw-r--r-- | lib/dns/sdb.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/dns/sdb.c b/lib/dns/sdb.c index 595ca256a4d2c..447ecbd2e5740 100644 --- a/lib/dns/sdb.c +++ b/lib/dns/sdb.c @@ -841,10 +841,17 @@ find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version, */ 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 |