]> 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:42:21 +0000 (00:42 +0000)
committerTatuya JINMEI 神明達哉 <jinmei@isc.org>
Tue, 21 Apr 2009 00:42:21 +0000 (00:42 +0000)
or SDB. [RT #19577]

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

diff --git a/CHANGES b/CHANGES
index 1e95bd91932f99b8d654de248f296de907dd73c9..751f7ffcefcfb7cf9bf08642f23a61787725cc48 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..15d54ec2b947a0d323ba87f702629d54d4563578 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.66.48.1 2009/04/21 00:42:21 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..52df721ee0c45afb5d707e692cd3e63ee535823e 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.18.50.1 2009/04/21 00:42:21 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;