2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-29 21:47:59 +00:00

remove 'target' parameter from dns_name_concatenate()

the target buffer passed to dns_name_concatenate() was never
used (except for one place in dig, where it wasn't actually
needed, and has already been removed in a prior commit).
we can safely remove the parameter.
This commit is contained in:
Evan Hunt 2025-02-21 00:56:47 -08:00
parent 2edefbad4a
commit a6986f6837
20 changed files with 46 additions and 65 deletions

View File

@ -2277,7 +2277,7 @@ setup_lookup(dig_lookup_t *lookup) {
if (!dns_name_isabsolute(name)) { if (!dns_name_isabsolute(name)) {
result = dns_name_concatenate( result = dns_name_concatenate(
name, lookup->oname, name, lookup->oname,
lookup->name, NULL); lookup->name);
} else { } else {
dns_name_copy(name, lookup->name); dns_name_copy(name, lookup->name);
} }

View File

@ -959,7 +959,7 @@ addnowildcardhash(hashlist_t *l,
wild = dns_fixedname_initname(&fixed); wild = dns_fixedname_initname(&fixed);
result = dns_name_concatenate(dns_wildcardname, name, wild, NULL); result = dns_name_concatenate(dns_wildcardname, name, wild);
if (result == ISC_R_NOSPACE) { if (result == ISC_R_NOSPACE) {
return; return;
} }

View File

@ -875,8 +875,7 @@ set_target(dns_adb_t *adb, const dns_name_t *name, const dns_name_t *fname,
prefix = dns_fixedname_initname(&fixed1); prefix = dns_fixedname_initname(&fixed1);
new_target = dns_fixedname_initname(&fixed2); new_target = dns_fixedname_initname(&fixed2);
dns_name_split(name, nlabels, prefix, NULL); dns_name_split(name, nlabels, prefix, NULL);
result = dns_name_concatenate(prefix, &dname.dname, new_target, result = dns_name_concatenate(prefix, &dname.dname, new_target);
NULL);
dns_rdata_freestruct(&dname); dns_rdata_freestruct(&dname);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
return result; return result;

View File

@ -652,7 +652,7 @@ client_resfind(resctx_t *rctx, dns_fetchresponse_t *resp) {
prefix = dns_fixedname_initname(&fixed); prefix = dns_fixedname_initname(&fixed);
dns_name_split(name, nlabels, prefix, NULL); dns_name_split(name, nlabels, prefix, NULL);
tresult = dns_name_concatenate(prefix, &dname.dname, tresult = dns_name_concatenate(prefix, &dname.dname,
name, NULL); name);
dns_rdata_freestruct(&dname); dns_rdata_freestruct(&dname);
if (tresult == ISC_R_SUCCESS) { if (tresult == ISC_R_SUCCESS) {
want_restart = true; want_restart = true;

View File

@ -592,7 +592,7 @@ cleanup_struct:
RUNTIME_CHECK(dns_name_concatenate( RUNTIME_CHECK(dns_name_concatenate(
dns_wildcardname, dns_wildcardname,
dns_fixedname_name(&fnewname), dns_fixedname_name(&fnewname),
wild, NULL) == ISC_R_SUCCESS); wild) == ISC_R_SUCCESS);
} }
inc_stat(dns_dnssecstats_wildcard); inc_stat(dns_dnssecstats_wildcard);
ret = DNS_R_FROMWILDCARD; ret = DNS_R_FROMWILDCARD;

View File

@ -302,9 +302,10 @@ dns_name_setbuffer(dns_name_t *name, isc_buffer_t *buffer) {
* Dedicate a buffer for use with 'name'. * Dedicate a buffer for use with 'name'.
* *
* Notes: * Notes:
* \li Specification of a target buffer in dns_name_fromwire(), * \li Specification of a target buffer in dns_name_fromwire() and
* dns_name_fromtext(), and dns_name_concatenate() is optional if * dns_name_fromtext() is optional if 'name' has a dedicated buffer.
* 'name' has a dedicated buffer. * The target name in dns_name_concatenate() must have a dedicated
* buffer.
* *
* \li The caller must not write to buffer until the name has been * \li The caller must not write to buffer until the name has been
* invalidated or is otherwise known not to be in use. * invalidated or is otherwise known not to be in use.
@ -959,9 +960,11 @@ dns_name_downcase(const dns_name_t *source, dns_name_t *name);
isc_result_t isc_result_t
dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix, dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix,
dns_name_t *name, isc_buffer_t *target); dns_name_t *name);
/*%< /*%<
* Concatenate 'prefix' and 'suffix'. * Concatenate 'prefix' and 'suffix' and place the result in 'name'.
* (Note that 'name' may be the same as 'prefix', in which case
* 'suffix' will be appended to it.)
* *
* Requires: * Requires:
* *
@ -969,20 +972,10 @@ dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix,
* *
*\li 'suffix' is a valid name or NULL. *\li 'suffix' is a valid name or NULL.
* *
*\li 'name' is a valid name or NULL. *\li 'name' is a valid name with a dedicated buffer.
*
*\li 'target' is a valid buffer or 'target' is NULL and 'name' has
* a dedicated buffer.
* *
*\li If 'prefix' is absolute, 'suffix' must be NULL or the empty name. *\li If 'prefix' is absolute, 'suffix' must be NULL or the empty name.
* *
* Ensures:
*
*\li On success,
* If 'target' is not NULL and 'name' is not NULL, then 'name'
* is attached to it.
* The used space in target is updated.
*
* Returns: * Returns:
*\li #ISC_R_SUCCESS *\li #ISC_R_SUCCESS
*\li #ISC_R_NOSPACE *\li #ISC_R_NOSPACE

View File

@ -1511,13 +1511,14 @@ dns_name_towire(const dns_name_t *name, dns_compress_t *cctx,
isc_result_t isc_result_t
dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix, dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix,
dns_name_t *name, isc_buffer_t *target) { dns_name_t *name) {
unsigned char *ndata; unsigned char *ndata = NULL;
unsigned int nrem, prefix_length, length; unsigned int nrem, prefix_length, length;
bool copy_prefix = true; bool copy_prefix = true;
bool copy_suffix = true; bool copy_suffix = true;
bool absolute = false; bool absolute = false;
dns_name_t tmp_name; dns_name_t tmp_name;
isc_buffer_t *target = NULL;
/* /*
* Concatenate 'prefix' and 'suffix'. * Concatenate 'prefix' and 'suffix'.
@ -1525,10 +1526,9 @@ dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix,
REQUIRE(prefix == NULL || DNS_NAME_VALID(prefix)); REQUIRE(prefix == NULL || DNS_NAME_VALID(prefix));
REQUIRE(suffix == NULL || DNS_NAME_VALID(suffix)); REQUIRE(suffix == NULL || DNS_NAME_VALID(suffix));
REQUIRE(name == NULL || DNS_NAME_VALID(name)); REQUIRE(DNS_NAME_VALID(name) && ISC_BUFFER_VALID(name->buffer));
REQUIRE((target != NULL && ISC_BUFFER_VALID(target)) || REQUIRE(DNS_NAME_BINDABLE(name));
(target == NULL && name != NULL &&
ISC_BUFFER_VALID(name->buffer)));
if (prefix == NULL || prefix->length == 0) { if (prefix == NULL || prefix->length == 0) {
copy_prefix = false; copy_prefix = false;
} }
@ -1543,13 +1543,9 @@ dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix,
dns_name_init(&tmp_name); dns_name_init(&tmp_name);
name = &tmp_name; name = &tmp_name;
} }
if (target == NULL) {
INSIST(name->buffer != NULL);
target = name->buffer;
isc_buffer_clear(name->buffer);
}
REQUIRE(DNS_NAME_BINDABLE(name)); target = name->buffer;
isc_buffer_clear(target);
/* /*
* Set up. * Set up.
@ -1583,8 +1579,7 @@ dns_name_concatenate(const dns_name_t *prefix, const dns_name_t *suffix,
} }
/* /*
* If 'prefix' and 'name' are the same object, and the object has * If 'prefix' and 'name' are the same object, we don't have to
* a dedicated buffer, and we're using it, then we don't have to
* copy anything. * copy anything.
*/ */
if (copy_prefix && (prefix != name || prefix->buffer != target)) { if (copy_prefix && (prefix != name || prefix->buffer != target)) {

View File

@ -483,8 +483,7 @@ dns_nsec_noexistnodata(dns_rdatatype_t type, const dns_name_t *name,
dns_name_getlabelsequence(&nsec.next, labels - nlabels, dns_name_getlabelsequence(&nsec.next, labels - nlabels,
nlabels, &common); nlabels, &common);
} }
result = dns_name_concatenate(dns_wildcardname, &common, wild, result = dns_name_concatenate(dns_wildcardname, &common, wild);
NULL);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
dns_rdata_freestruct(&nsec); dns_rdata_freestruct(&nsec);
(*logit)(arg, ISC_LOG_DEBUG(3), (*logit)(arg, ISC_LOG_DEBUG(3),

View File

@ -2960,7 +2960,7 @@ find_wildcard(qpz_search_t *search, qpznode_t **nodep,
* Construct the wildcard name for this level. * Construct the wildcard name for this level.
*/ */
result = dns_name_concatenate(dns_wildcardname, result = dns_name_concatenate(dns_wildcardname,
&node->name, wname, NULL); &node->name, wname);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
break; break;
} }

View File

@ -290,7 +290,7 @@ additionaldata_mx(ARGS_ADDLDATA) {
dns_fixedname_init(&fixed); dns_fixedname_init(&fixed);
result = dns_name_concatenate(&port25, &name, result = dns_name_concatenate(&port25, &name,
dns_fixedname_name(&fixed), NULL); dns_fixedname_name(&fixed));
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
return ISC_R_SUCCESS; return ISC_R_SUCCESS;
} }

View File

@ -341,7 +341,7 @@ additionaldata_in_srv(ARGS_ADDLDATA) {
} }
result = dns_name_concatenate(dns_fixedname_name(&fixed), &name, result = dns_name_concatenate(dns_fixedname_name(&fixed), &name,
dns_fixedname_name(&fixed), NULL); dns_fixedname_name(&fixed));
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
return ISC_R_SUCCESS; return ISC_R_SUCCESS;
} }

View File

@ -6929,8 +6929,7 @@ is_answertarget_allowed(fetchctx_t *fctx, dns_name_t *qname, dns_name_t *rname,
tname = dns_fixedname_initname(&fixed); tname = dns_fixedname_initname(&fixed);
nlabels = dns_name_countlabels(rname); nlabels = dns_name_countlabels(rname);
dns_name_split(qname, nlabels, &prefix, NULL); dns_name_split(qname, nlabels, &prefix, NULL);
result = dns_name_concatenate(&prefix, &dname.dname, tname, result = dns_name_concatenate(&prefix, &dname.dname, tname);
NULL);
if (result == DNS_R_NAMETOOLONG) { if (result == DNS_R_NAMETOOLONG) {
SET_IF_NOT_NULL(chainingp, true); SET_IF_NOT_NULL(chainingp, true);
return true; return true;

View File

@ -1071,7 +1071,7 @@ name2data(dns_rpz_zone_t *rpz, dns_rpz_type_t rpz_type,
n -= dns_name_countlabels(&rpz->nsdname); n -= dns_name_countlabels(&rpz->nsdname);
} }
dns_name_getlabelsequence(src_name, prefix_len, n, &tmp_name); dns_name_getlabelsequence(src_name, prefix_len, n, &tmp_name);
(void)dns_name_concatenate(&tmp_name, dns_rootname, trig_name, NULL); (void)dns_name_concatenate(&tmp_name, dns_rootname, trig_name);
} }
#ifndef HAVE_BUILTIN_CLZ #ifndef HAVE_BUILTIN_CLZ

View File

@ -432,7 +432,7 @@ make_key(const dns_rrl_t *rrl, dns_rrl_key_t *key,
*/ */
wild = dns_fixedname_initname(&fixed); wild = dns_fixedname_initname(&fixed);
result = dns_name_concatenate(dns_wildcardname, origin, result = dns_name_concatenate(dns_wildcardname, origin,
wild, NULL); wild);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
/* /*
* Fallback to use the zone's origin name * Fallback to use the zone's origin name

View File

@ -549,8 +549,8 @@ getnodedata(dns_db_t *db, const dns_name_t *name, bool create,
fname = dns_fixedname_name(&fixed); fname = dns_fixedname_name(&fixed);
dns_name_getlabelsequence( dns_name_getlabelsequence(
name, i + 1, dlabels - i - 1, fname); name, i + 1, dlabels - i - 1, fname);
result = dns_name_concatenate( result = dns_name_concatenate(dns_wildcardname,
dns_wildcardname, fname, fname, NULL); fname, fname);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
MAYBE_UNLOCK(sdlz->dlzimp); MAYBE_UNLOCK(sdlz->dlzimp);
return result; return result;

View File

@ -631,7 +631,7 @@ dns_ssutable_checkrules(dns_ssutable_t *table, const dns_name_t *signer,
case dns_ssumatchtype_selfwild: case dns_ssumatchtype_selfwild:
wildcard = dns_fixedname_initname(&fixed); wildcard = dns_fixedname_initname(&fixed);
result = dns_name_concatenate(dns_wildcardname, signer, result = dns_name_concatenate(dns_wildcardname, signer,
wildcard, NULL); wildcard);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
if (logit) { if (logit) {
isc_log_write( isc_log_write(

View File

@ -475,8 +475,7 @@ dns_tkey_processquery(dns_message_t *msg, dns_tkeyctx_t *tctx,
RETERR(isc_hex_totext(&r, 2, "", &b)); RETERR(isc_hex_totext(&r, 2, "", &b));
RETERR(dns_name_fromtext(keyname, &b, NULL, 0, NULL)); RETERR(dns_name_fromtext(keyname, &b, NULL, 0, NULL));
} }
RETERR(dns_name_concatenate(keyname, dns_rootname, keyname, RETERR(dns_name_concatenate(keyname, dns_rootname, keyname));
NULL));
result = dns_tsigkey_find(&tsigkey, keyname, NULL, ring); result = dns_tsigkey_find(&tsigkey, keyname, NULL, ring);
if (result == ISC_R_SUCCESS) { if (result == ISC_R_SUCCESS) {

View File

@ -2610,8 +2610,7 @@ findnsec3proofs(dns_validator_t *val) {
{ {
val->attributes |= VALATTR_FOUNDCLOSEST; val->attributes |= VALATTR_FOUNDCLOSEST;
result = dns_name_concatenate(dns_wildcardname, closest, result = dns_name_concatenate(dns_wildcardname, closest,
dns_fixedname_name(&val->wild), dns_fixedname_name(&val->wild));
NULL);
RUNTIME_CHECK(result == ISC_R_SUCCESS); RUNTIME_CHECK(result == ISC_R_SUCCESS);
} else { } else {
val->attributes &= ~VALATTR_FOUNDNOQNAME; val->attributes &= ~VALATTR_FOUNDNOQNAME;

View File

@ -4881,7 +4881,7 @@ check_reportchannel(dns_zone_t *zone, dns_db_t *db) {
* Otherwise, we need a '*._er' wildcard with a TXT rdataset. * Otherwise, we need a '*._er' wildcard with a TXT rdataset.
*/ */
name = dns_fixedname_initname(&fixed); name = dns_fixedname_initname(&fixed);
CHECK(dns_name_concatenate(&er, &zone->origin, name, NULL)); CHECK(dns_name_concatenate(&er, &zone->origin, name));
CHECK(dns_db_findnode(db, name, false, &node)); CHECK(dns_db_findnode(db, name, false, &node));
dns_db_currentversion(db, &version); dns_db_currentversion(db, &version);

View File

@ -3181,7 +3181,7 @@ rpz_get_p_name(ns_client_t *client, dns_name_t *p_name, dns_rpz_zone_t *rpz,
for (;;) { for (;;) {
dns_name_getlabelsequence(trig_name, first, labels - first - 1, dns_name_getlabelsequence(trig_name, first, labels - first - 1,
&prefix); &prefix);
result = dns_name_concatenate(&prefix, suffix, p_name, NULL); result = dns_name_concatenate(&prefix, suffix, p_name);
if (result == ISC_R_SUCCESS) { if (result == ISC_R_SUCCESS) {
break; break;
} }
@ -4900,9 +4900,8 @@ redirect2(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset,
dns_name_init(&prefix); dns_name_init(&prefix);
dns_name_getlabelsequence(client->query.qname, 0, labels - 1, dns_name_getlabelsequence(client->query.qname, 0, labels - 1,
&prefix); &prefix);
result = dns_name_concatenate(&prefix, result = dns_name_concatenate(
client->view->redirectzone, &prefix, client->view->redirectzone, redirectname);
redirectname, NULL);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
return ISC_R_NOTFOUND; return ISC_R_NOTFOUND;
} }
@ -4980,7 +4979,7 @@ redirect2(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset,
/* /*
* Make the name absolute. * Make the name absolute.
*/ */
result = dns_name_concatenate(found, dns_rootname, found, NULL); result = dns_name_concatenate(found, dns_rootname, found);
RUNTIME_CHECK(result == ISC_R_SUCCESS); RUNTIME_CHECK(result == ISC_R_SUCCESS);
dns_name_copy(found, name); dns_name_copy(found, name);
@ -7269,7 +7268,7 @@ query_rpzcname(query_ctx_t *qctx, dns_name_t *cname) {
dns_fixedname_name(&suffix)); dns_fixedname_name(&suffix));
result = dns_name_concatenate(dns_fixedname_name(&prefix), result = dns_name_concatenate(dns_fixedname_name(&prefix),
dns_fixedname_name(&suffix), dns_fixedname_name(&suffix),
qctx->fname, NULL); qctx->fname);
if (result == DNS_R_NAMETOOLONG) { if (result == DNS_R_NAMETOOLONG) {
client->message->rcode = dns_rcode_yxdomain; client->message->rcode = dns_rcode_yxdomain;
} else if (result != ISC_R_SUCCESS) { } else if (result != ISC_R_SUCCESS) {
@ -9271,8 +9270,8 @@ query_addnxrrsetnsec(query_ctx_t *qctx) {
dns_name_split(qctx->fname, sig.labels + 1, NULL, fname); dns_name_split(qctx->fname, sig.labels + 1, NULL, fname);
/* This will succeed, since we've stripped labels. */ /* This will succeed, since we've stripped labels. */
RUNTIME_CHECK(dns_name_concatenate(dns_wildcardname, fname, fname, RUNTIME_CHECK(dns_name_concatenate(dns_wildcardname, fname, fname) ==
NULL) == ISC_R_SUCCESS); ISC_R_SUCCESS);
query_addrrset(qctx, &fname, &qctx->rdataset, &qctx->sigrdataset, dbuf, query_addrrset(qctx, &fname, &qctx->rdataset, &qctx->sigrdataset, dbuf,
DNS_SECTION_AUTHORITY); DNS_SECTION_AUTHORITY);
} }
@ -10385,7 +10384,7 @@ query_dname(query_ctx_t *qctx) {
INSIST(qctx->fname == NULL); INSIST(qctx->fname == NULL);
qctx->dbuf = ns_client_getnamebuf(qctx->client); qctx->dbuf = ns_client_getnamebuf(qctx->client);
qctx->fname = ns_client_newname(qctx->client, qctx->dbuf, &b); qctx->fname = ns_client_newname(qctx->client, qctx->dbuf, &b);
result = dns_name_concatenate(prefix, tname, qctx->fname, NULL); result = dns_name_concatenate(prefix, tname, qctx->fname);
dns_message_puttempname(qctx->client->message, &tname); dns_message_puttempname(qctx->client->message, &tname);
/* /*
@ -11190,8 +11189,7 @@ again:
/* /*
* Add the no wildcard proof. * Add the no wildcard proof.
*/ */
result = dns_name_concatenate(dns_wildcardname, cname, wname, result = dns_name_concatenate(dns_wildcardname, cname, wname);
NULL);
if (result != ISC_R_SUCCESS) { if (result != ISC_R_SUCCESS) {
goto cleanup; goto cleanup;
} }
@ -11232,7 +11230,7 @@ again:
dns_name_split(name, nlabels, NULL, wname); dns_name_split(name, nlabels, NULL, wname);
} }
result = dns_name_concatenate(dns_wildcardname, wname, result = dns_name_concatenate(dns_wildcardname, wname,
wname, NULL); wname);
if (result == ISC_R_SUCCESS) { if (result == ISC_R_SUCCESS) {
have_wname = true; have_wname = true;
} }