From: Mark Andrews Date: Mon, 28 May 2018 07:26:39 +0000 (+1000) Subject: work around cppcheck false positive X-Git-Tag: v9.13.1~26^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb5802e854d11800e8547ad40e19969ca0c5b14d;p=thirdparty%2Fbind9.git work around cppcheck false positive --- diff --git a/lib/dns/master.c b/lib/dns/master.c index f7b7f1b6dbb..e446d8133e7 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -1009,6 +1009,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; @@ -1378,13 +1391,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); + new_in_use = find_free_name(ictx); new_name = dns_fixedname_initname(&ictx->fixed[new_in_use]); isc_buffer_init(&buffer, token.value.as_region.base, @@ -2088,7 +2096,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)); @@ -2107,11 +2114,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;