From: Mark Andrews Date: Mon, 28 May 2018 07:26:39 +0000 (+1000) Subject: work around cppcheck false positive X-Git-Tag: v9.10.8rc1~15^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6120aba080a9e93e2f4ba2b74333d9a1661f4536;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 7c8f4188ec6..f1597d68969 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -1026,6 +1026,19 @@ openfile_text(dns_loadctx_t *lctx, const char *master_file) { return (isc_lex_openfile(lctx->lex, master_file)); } +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); +} + static isc_result_t load_text(dns_loadctx_t *lctx) { dns_rdataclass_t rdclass; @@ -1395,14 +1408,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); @@ -2100,7 +2107,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)); @@ -2119,11 +2125,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;