From: Mark Andrews Date: Mon, 28 May 2018 07:26:39 +0000 (+1000) Subject: work around cppcheck false positive X-Git-Tag: v9.9.13rc1~17^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20d279571f57bb3b1fe029ea606c38171a54bec6;p=thirdparty%2Fbind9.git work around cppcheck false positive (cherry picked from commit cb5802e854d11800e8547ad40e19969ca0c5b14d) --- diff --git a/lib/dns/master.c b/lib/dns/master.c index 13dce9ef578..183cd7b5789 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -1019,7 +1019,19 @@ check_wildcard(dns_incctx_t *ictx, const char *source, unsigned long line, } } -static isc_result_t +static int +find_free_name(dns_incctx_t *incctx) { + int i; + + for (i = 0; i < (NBUFS - 1); i++) { + if (!incctx->in_use[i]) { + break; + } + } + INSIST(!incctx->in_use[i]); + return (i); +} + load_text(dns_loadctx_t *lctx) { dns_rdataclass_t rdclass; dns_rdatatype_t type, covers; @@ -1388,14 +1400,8 @@ load_text(dns_loadctx_t *lctx) { /* * Normal processing resumes. - * - * Find a free name buffer. */ - for (new_in_use = 0; new_in_use < NBUFS; new_in_use++) - if (!ictx->in_use[new_in_use]) - break; - INSIST(new_in_use < NBUFS); - dns_fixedname_init(&ictx->fixed[new_in_use]); + new_in_use = find_free_name(ictx); new_name = dns_fixedname_name(&ictx->fixed[new_in_use]); isc_buffer_init(&buffer, token.value.as_region.base, token.value.as_region.length); @@ -2081,7 +2087,6 @@ pushfile(const char *master_file, dns_name_t *origin, dns_loadctx_t *lctx) { dns_incctx_t *ictx; dns_incctx_t *newctx = NULL; isc_region_t r; - int new_in_use; REQUIRE(master_file != NULL); REQUIRE(DNS_LCTX_VALID(lctx)); @@ -2100,11 +2105,7 @@ pushfile(const char *master_file, dns_name_t *origin, dns_loadctx_t *lctx) { /* Set current domain. */ if (ictx->glue != NULL || ictx->current != NULL) { - for (new_in_use = 0; new_in_use < NBUFS; new_in_use++) - if (!newctx->in_use[new_in_use]) - break; - INSIST(new_in_use < NBUFS); - newctx->current_in_use = new_in_use; + newctx->current_in_use = find_free_name(newctx); newctx->current = dns_fixedname_name(&newctx->fixed[newctx->current_in_use]); newctx->in_use[newctx->current_in_use] = ISC_TRUE;