]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2364. [bug] named could trigger a assertion when serving a
authorMark Andrews <marka@isc.org>
Tue, 29 Apr 2008 00:56:50 +0000 (00:56 +0000)
committerMark Andrews <marka@isc.org>
Tue, 29 Apr 2008 00:56:50 +0000 (00:56 +0000)
                        malformed signed zone. [RT #17828]

CHANGES
bin/named/query.c

diff --git a/CHANGES b/CHANGES
index e2241d6e3948f4545b9d28be8e433e0e45f92838..3ee3b3ed55f8a67aba7caa4981a252c303d530f5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2364.  [bug]           named could trigger a assertion when serving a
+                       malformed signed zone. [RT #17828]
+
 2363.  [port]          sunos: pre-set "lt_cv_sys_max_cmd_len=4096;".
                        [RT #17513]
 
index 1d3a1136b34180ef9a4a0fb85aa56862a655d71a..eb6e580cef5300f18821794be7a58579ae1990c4 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: query.c,v 1.298.48.6 2008/04/23 01:18:33 jinmei Exp $ */
+/* $Id: query.c,v 1.298.48.7 2008/04/29 00:56:50 marka Exp $ */
 
 /*! \file */
 
@@ -2770,6 +2770,13 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
                                                   &olabels);
                        (void)dns_name_fullcompare(name, &nsec.next, &order,
                                                   &nlabels);
+                       /*
+                        * Check for a pathological condition created when
+                        * serving some malformed signed zones and bail out.
+                        */
+                       if (dns_name_countlabels(name) == nlabels)
+                               goto cleanup;
+
                        if (olabels > nlabels)
                                dns_name_split(name, olabels, NULL, wname);
                        else