From: Ralph Dolmans Date: Wed, 29 Jan 2020 09:57:29 +0000 (+0100) Subject: - Fix RPZ's get_tld_label maxdnamelen check X-Git-Tag: release-1.10.0rc1~28^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef120738c00c83117060804d734976da898d365f;p=thirdparty%2Funbound.git - Fix RPZ's get_tld_label maxdnamelen check --- diff --git a/services/rpz.c b/services/rpz.c index 72397998f..37ea2aa53 100644 --- a/services/rpz.c +++ b/services/rpz.c @@ -118,13 +118,17 @@ get_tld_label(uint8_t* dname, size_t maxdnamelen) uint8_t* prevlab = dname; size_t dnamelen = 0; + /* one byte needed for label length */ + if(dnamelen+1 > maxdnamelen) + return NULL; + /* only root label */ if(*dname == 0) return NULL; while(*dname) { dnamelen += ((size_t)*dname)+1; - if(dnamelen > maxdnamelen) + if(dnamelen+1 > maxdnamelen) return NULL; dname = dname+((size_t)*dname)+1; if(*dname != 0)