]> 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:54:28 +0000 (00:54 +0000)
committerMark Andrews <marka@isc.org>
Tue, 29 Apr 2008 00:54:28 +0000 (00:54 +0000)
                        malformed signed zone. [RT #17828]

CHANGES
bin/named/query.c

diff --git a/CHANGES b/CHANGES
index 91f9a6d9bc5adb0f78d8d3f33d5f452d230be0d0..fcd4e0fbcaf7097758a14ad42cc91b897afe5163 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 1caaf013e290fec142e5de3fc3d90977c4dc62dd..ccd4a036fb66503fd6c80c742f1a659330f45a58 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: query.c,v 1.306 2008/04/23 01:14:24 jinmei Exp $ */
+/* $Id: query.c,v 1.307 2008/04/29 00:54:28 marka Exp $ */
 
 /*! \file */
 
@@ -2774,6 +2774,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