[v9_10] Add DLZ db version to activeversions

4628.	[bug]		Fixed a potential reference leak in query_getdb().
			[RT #45247]

(cherry picked from commit 594eadcc34)
This commit is contained in:
Evan Hunt 2017-05-28 14:30:36 -07:00
parent 9d0174e5da
commit 40a44ab265
2 changed files with 16 additions and 10 deletions

View file

@ -1,3 +1,6 @@
4628. [bug] Fixed a potential reference leak in query_getdb().
[RT #45247]
4627. [func] Deprecate 'dig +sit', it is replaced by 'dig +cookie'.
[RT #45245]

View file

@ -698,7 +698,7 @@ ns_query_init(ns_client_t *client) {
return (result);
}
static inline ns_dbversion_t *
static ns_dbversion_t *
query_findversion(ns_client_t *client, dns_db_t *db) {
ns_dbversion_t *dbversion;
@ -1180,6 +1180,8 @@ query_getdb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
zonelabels, &cm, &ci, &tdbp);
/* If we successful, we found a better match. */
if (tresult == ISC_R_SUCCESS) {
ns_dbversion_t *dbversion;
/*
* If the previous search returned a zone, detach it.
*/
@ -1198,15 +1200,16 @@ query_getdb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
*/
*versionp = NULL;
/*
* Get our database version.
*/
dns_db_currentversion(tdbp, versionp);
/*
* Be sure to return our database.
*/
*dbp = tdbp;
dbversion = query_findversion(client, tdbp);
if (dbversion == NULL) {
result = ISC_R_NOMEMORY;
} else {
/*
* Be sure to return our database.
*/
*dbp = tdbp;
*versionp = dbversion->version;
}
/*
* We return a null zone, No stats for DLZ zones.