]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2586. [bug] Missing cleanup of SIG rdataset in searching a DLZ DB
authorTatuya JINMEI 神明達哉 <jinmei@isc.org>
Tue, 21 Apr 2009 00:41:02 +0000 (00:41 +0000)
committerTatuya JINMEI 神明達哉 <jinmei@isc.org>
Tue, 21 Apr 2009 00:41:02 +0000 (00:41 +0000)
or SDB. [RT #19577]

CHANGES
lib/dns/sdb.c
lib/dns/sdlz.c

diff --git a/CHANGES b/CHANGES
index 37fecb89971010f045497957af55b6dbe05d32dd..1ecb87cf498f49d830be621be2ed163e3342cec5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2586.  [bug]           Missing cleanup of SIG rdataset in searching a DLZ DB
+                       or SDB. [RT #19577]
+
 2585.  [bug]           Uninitialized socket name could be referenced via a
                        statistics channel, triggering an assertion failure in
                        XML rendering. [RT #19427]
index f141a102f2af3fc50ecc3427f6cc2f06a91cf06f..a49357a2889de354a9c82cf458d4e296f9d06e95 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: sdb.c,v 1.66 2008/09/24 03:16:58 tbox Exp $ */
+/* $Id: sdb.c,v 1.67 2009/04/21 00:41:02 jinmei Exp $ */
 
 /*! \file */
 
@@ -880,9 +880,12 @@ find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
                                {
                                        result = DNS_R_ZONECUT;
                                        dns_rdataset_disassociate(rdataset);
-                                       if (sigrdataset != NULL)
+                                       if (sigrdataset != NULL &&
+                                           dns_rdataset_isassociated
+                                                       (sigrdataset)) {
                                                dns_rdataset_disassociate
                                                                (sigrdataset);
+                                       }
                                } else
                                        result = DNS_R_DELEGATION;
                                break;
index ec82c3e51c7124e92667d6a19119c8aa3a34da32..b4099ed9964a26f2c93ea0a23b859ee21d469cb9 100644 (file)
@@ -50,7 +50,7 @@
  * USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: sdlz.c,v 1.18 2008/09/24 02:46:22 marka Exp $ */
+/* $Id: sdlz.c,v 1.19 2009/04/21 00:41:02 jinmei Exp $ */
 
 /*! \file */
 
@@ -844,9 +844,12 @@ find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
                                {
                                        result = DNS_R_ZONECUT;
                                        dns_rdataset_disassociate(rdataset);
-                                       if (sigrdataset != NULL)
+                                       if (sigrdataset != NULL &&
+                                           dns_rdataset_isassociated
+                                                       (sigrdataset)) {
                                                dns_rdataset_disassociate
                                                        (sigrdataset);
+                                       }
                                } else
                                        result = DNS_R_DELEGATION;
                                break;