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

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

diff --git a/CHANGES b/CHANGES
index 93fc5c6fdd4d5e812cd5ea29f5eea67de04415e8..9ed829ce0bb520864ce1112316c937a89cda6ec0 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]
+
 2584.  [bug]           alpha: gcc optimization could break atomic operations.
                        [RT #19227]
 
index effb2bf0c293f73c4ae33e0815545aecb1643c44..42e566cdd416a94ce860c6090372ee5f97d1a5ff 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: sdb.c,v 1.45.18.16 2008/01/17 23:45:58 tbox Exp $ */
+/* $Id: sdb.c,v 1.45.18.17 2009/04/21 00:43:54 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 b91f8259e7bdb16dbb27ccc22eba976fe0ca141b..8129e34df9415b1e1365f3d3b969bf2669cbac19 100644 (file)
@@ -50,7 +50,7 @@
  * USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: sdlz.c,v 1.2.2.11 2007/08/28 07:20:05 tbox Exp $ */
+/* $Id: sdlz.c,v 1.2.2.12 2009/04/21 00:43:54 jinmei Exp $ */
 
 /*! \file */
 
@@ -841,9 +841,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;