From: Mark Andrews Date: Tue, 29 Apr 2008 00:56:50 +0000 (+0000) Subject: 2364. [bug] named could trigger a assertion when serving a X-Git-Tag: v9.5.0rc1~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8535afd17eae19cc78324222ee3170dc46790b4;p=thirdparty%2Fbind9.git 2364. [bug] named could trigger a assertion when serving a malformed signed zone. [RT #17828] --- diff --git a/CHANGES b/CHANGES index e2241d6e394..3ee3b3ed55f 100644 --- 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] diff --git a/bin/named/query.c b/bin/named/query.c index 1d3a1136b34..eb6e580cef5 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -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