From f083a44415365f6464f8bd35f439dc13ee0b684f Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 12 May 2010 05:40:32 +0000 Subject: [PATCH] 2884. [bug] Insufficient valadation in dns_name_getlabelsequence(). [RT #21283] --- CHANGES | 3 +++ lib/dns/name.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index fb99f6a762..a0bcca38d7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2884. [bug] Insufficient valadation in dns_name_getlabelsequence(). + [RT #21283] + 2883. [bug] 'dig +short' failed to handle really large datasets. [RT #21113] diff --git a/lib/dns/name.c b/lib/dns/name.c index fc7d5be34a..f54d182517 100644 --- a/lib/dns/name.c +++ b/lib/dns/name.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: name.c,v 1.169 2009/09/01 17:36:51 jinmei Exp $ */ +/* $Id: name.c,v 1.170 2010/05/12 05:40:32 marka Exp $ */ /*! \file */ @@ -902,7 +902,7 @@ dns_name_getlabelsequence(const dns_name_t *source, REQUIRE(VALID_NAME(source)); REQUIRE(VALID_NAME(target)); REQUIRE(first <= source->labels); - REQUIRE(first + n <= source->labels); + REQUIRE(n <= source->labels - first); /* note first+n could overflow */ REQUIRE(BINDABLE(target)); SETUP_OFFSETS(source, offsets, odata);