From: Evan Hunt Date: Mon, 14 Feb 2022 21:05:03 +0000 (-0800) Subject: mem_maybedup() can no longer fail X-Git-Tag: v9.19.0~92^2~2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=bbaade23ebd0025a1631bda62822f81c2c2d0807;p=thirdparty%2Fbind9.git mem_maybedup() can no longer fail mem_maybedup() calls isc_mem_allocate() if an mctx is supplied, but that can no longer fail, so now the only way mem_maybedup() could return NULL is if it was given a NULL source address by the caller. this commit adds a REQUIRE to prevent that scenario, and cleans up all the calling code that previously checked for NULL return values. this function is mostly used in rdata tostruct() implementations, so the documentation for dns_rdata_tostruct() has been updated to remove 'ISC_R_NOMEMORY' as a possible return value. --- diff --git a/lib/dns/include/dns/rdata.h b/lib/dns/include/dns/rdata.h index aa0b48013c9..a6e22e7e599 100644 --- a/lib/dns/include/dns/rdata.h +++ b/lib/dns/include/dns/rdata.h @@ -523,7 +523,8 @@ dns_rdata_tostruct(const dns_rdata_t *rdata, void *target, isc_mem_t *mctx); * * Result: *\li Success - *\li Resource Limit: Not enough memory + *\li Not Implemented + *\li Unexpected end of input */ void diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c index e1adee9dd8e..919c312ac6c 100644 --- a/lib/dns/rdata.c +++ b/lib/dns/rdata.c @@ -420,11 +420,14 @@ name_duporclone(const dns_name_t *source, isc_mem_t *mctx, dns_name_t *target) { static inline void * mem_maybedup(isc_mem_t *mctx, void *source, size_t length) { - void *copy; + void *copy = NULL; + + REQUIRE(source != NULL); if (mctx == NULL) { return (source); } + copy = isc_mem_allocate(mctx, length); memmove(copy, source, length); diff --git a/lib/dns/rdata/any_255/tsig_250.c b/lib/dns/rdata/any_255/tsig_250.c index f84d8b79262..d6bf3287989 100644 --- a/lib/dns/rdata/any_255/tsig_250.c +++ b/lib/dns/rdata/any_255/tsig_250.c @@ -496,9 +496,6 @@ tostruct_any_tsig(ARGS_TOSTRUCT) { */ INSIST(sr.length >= tsig->siglen); tsig->signature = mem_maybedup(mctx, sr.base, tsig->siglen); - if (tsig->signature == NULL) { - goto cleanup; - } isc_region_consume(&sr, tsig->siglen); /* @@ -524,21 +521,9 @@ tostruct_any_tsig(ARGS_TOSTRUCT) { */ INSIST(sr.length == tsig->otherlen); tsig->other = mem_maybedup(mctx, sr.base, tsig->otherlen); - if (tsig->other == NULL) { - goto cleanup; - } tsig->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL) { - dns_name_free(&tsig->algorithm, tsig->mctx); - } - if (mctx != NULL && tsig->signature != NULL) { - isc_mem_free(mctx, tsig->signature); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/amtrelay_260.c b/lib/dns/rdata/generic/amtrelay_260.c index dfe4685a519..020cfcf06d8 100644 --- a/lib/dns/rdata/generic/amtrelay_260.c +++ b/lib/dns/rdata/generic/amtrelay_260.c @@ -360,9 +360,6 @@ tostruct_amtrelay(ARGS_TOSTRUCT) { if (region.length != 0) { amtrelay->data = mem_maybedup(mctx, region.base, region.length); - if (amtrelay->data == NULL) { - return (ISC_R_NOMEMORY); - } } amtrelay->length = region.length; } diff --git a/lib/dns/rdata/generic/caa_257.c b/lib/dns/rdata/generic/caa_257.c index 62adef4a79c..eac735fc6b2 100644 --- a/lib/dns/rdata/generic/caa_257.c +++ b/lib/dns/rdata/generic/caa_257.c @@ -529,9 +529,6 @@ tostruct_caa(ARGS_TOSTRUCT) { return (ISC_R_UNEXPECTEDEND); } caa->tag = mem_maybedup(mctx, sr.base, caa->tag_len); - if (caa->tag == NULL) { - return (ISC_R_NOMEMORY); - } isc_region_consume(&sr, caa->tag_len); /* @@ -539,9 +536,6 @@ tostruct_caa(ARGS_TOSTRUCT) { */ caa->value_len = sr.length; caa->value = mem_maybedup(mctx, sr.base, sr.length); - if (caa->value == NULL) { - return (ISC_R_NOMEMORY); - } caa->mctx = mctx; return (ISC_R_SUCCESS); diff --git a/lib/dns/rdata/generic/cert_37.c b/lib/dns/rdata/generic/cert_37.c index 372060e21b5..4ce0fad93e1 100644 --- a/lib/dns/rdata/generic/cert_37.c +++ b/lib/dns/rdata/generic/cert_37.c @@ -207,10 +207,6 @@ tostruct_cert(ARGS_TOSTRUCT) { cert->length = region.length; cert->certificate = mem_maybedup(mctx, region.base, region.length); - if (cert->certificate == NULL) { - return (ISC_R_NOMEMORY); - } - cert->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/csync_62.c b/lib/dns/rdata/generic/csync_62.c index 32ea3142fc9..9cea44881c9 100644 --- a/lib/dns/rdata/generic/csync_62.c +++ b/lib/dns/rdata/generic/csync_62.c @@ -183,15 +183,8 @@ tostruct_csync(ARGS_TOSTRUCT) { csync->len = region.length; csync->typebits = mem_maybedup(mctx, region.base, region.length); - if (csync->typebits == NULL) { - goto cleanup; - } - csync->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/doa_259.c b/lib/dns/rdata/generic/doa_259.c index 2a070221b51..d7c6129dd8a 100644 --- a/lib/dns/rdata/generic/doa_259.c +++ b/lib/dns/rdata/generic/doa_259.c @@ -258,9 +258,6 @@ tostruct_doa(ARGS_TOSTRUCT) { isc_region_consume(®ion, 1); INSIST(doa->mediatype_len <= region.length); doa->mediatype = mem_maybedup(mctx, region.base, doa->mediatype_len); - if (doa->mediatype == NULL) { - goto cleanup; - } isc_region_consume(®ion, doa->mediatype_len); /* @@ -270,21 +267,12 @@ tostruct_doa(ARGS_TOSTRUCT) { doa->data = NULL; if (doa->data_len > 0) { doa->data = mem_maybedup(mctx, region.base, doa->data_len); - if (doa->data == NULL) { - goto cleanup; - } isc_region_consume(®ion, doa->data_len); } doa->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL && doa->mediatype != NULL) { - isc_mem_free(mctx, doa->mediatype); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/ds_43.c b/lib/dns/rdata/generic/ds_43.c index 4db39bcee83..6623711ceb4 100644 --- a/lib/dns/rdata/generic/ds_43.c +++ b/lib/dns/rdata/generic/ds_43.c @@ -293,10 +293,6 @@ generic_tostruct_ds(ARGS_TOSTRUCT) { ds->length = region.length; ds->digest = mem_maybedup(mctx, region.base, region.length); - if (ds->digest == NULL) { - return (ISC_R_NOMEMORY); - } - ds->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/gpos_27.c b/lib/dns/rdata/generic/gpos_27.c index ab9fc9200f9..96cdd501e46 100644 --- a/lib/dns/rdata/generic/gpos_27.c +++ b/lib/dns/rdata/generic/gpos_27.c @@ -140,43 +140,23 @@ tostruct_gpos(ARGS_TOSTRUCT) { gpos->long_len = uint8_fromregion(®ion); isc_region_consume(®ion, 1); gpos->longitude = mem_maybedup(mctx, region.base, gpos->long_len); - if (gpos->longitude == NULL) { - return (ISC_R_NOMEMORY); - } isc_region_consume(®ion, gpos->long_len); gpos->lat_len = uint8_fromregion(®ion); isc_region_consume(®ion, 1); gpos->latitude = mem_maybedup(mctx, region.base, gpos->lat_len); - if (gpos->latitude == NULL) { - goto cleanup_longitude; - } isc_region_consume(®ion, gpos->lat_len); gpos->alt_len = uint8_fromregion(®ion); isc_region_consume(®ion, 1); if (gpos->lat_len > 0) { gpos->altitude = mem_maybedup(mctx, region.base, gpos->alt_len); - if (gpos->altitude == NULL) { - goto cleanup_latitude; - } } else { gpos->altitude = NULL; } gpos->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup_latitude: - if (mctx != NULL && gpos->longitude != NULL) { - isc_mem_free(mctx, gpos->longitude); - } - -cleanup_longitude: - if (mctx != NULL && gpos->latitude != NULL) { - isc_mem_free(mctx, gpos->latitude); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/hinfo_13.c b/lib/dns/rdata/generic/hinfo_13.c index 2616ee27dcb..088bc688a73 100644 --- a/lib/dns/rdata/generic/hinfo_13.c +++ b/lib/dns/rdata/generic/hinfo_13.c @@ -125,26 +125,13 @@ tostruct_hinfo(ARGS_TOSTRUCT) { hinfo->cpu_len = uint8_fromregion(®ion); isc_region_consume(®ion, 1); hinfo->cpu = mem_maybedup(mctx, region.base, hinfo->cpu_len); - if (hinfo->cpu == NULL) { - return (ISC_R_NOMEMORY); - } isc_region_consume(®ion, hinfo->cpu_len); hinfo->os_len = uint8_fromregion(®ion); isc_region_consume(®ion, 1); hinfo->os = mem_maybedup(mctx, region.base, hinfo->os_len); - if (hinfo->os == NULL) { - goto cleanup; - } - hinfo->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL && hinfo->cpu != NULL) { - isc_mem_free(mctx, hinfo->cpu); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/hip_55.c b/lib/dns/rdata/generic/hip_55.c index 334e4679a10..314bf1881a0 100644 --- a/lib/dns/rdata/generic/hip_55.c +++ b/lib/dns/rdata/generic/hip_55.c @@ -322,42 +322,21 @@ tostruct_hip(ARGS_TOSTRUCT) { hip->hit = hip->key = hip->servers = NULL; hip->hit = mem_maybedup(mctx, region.base, hip->hit_len); - if (hip->hit == NULL) { - goto cleanup; - } isc_region_consume(®ion, hip->hit_len); INSIST(hip->key_len <= region.length); hip->key = mem_maybedup(mctx, region.base, hip->key_len); - if (hip->key == NULL) { - goto cleanup; - } isc_region_consume(®ion, hip->key_len); hip->servers_len = region.length; if (hip->servers_len != 0) { hip->servers = mem_maybedup(mctx, region.base, region.length); - if (hip->servers == NULL) { - goto cleanup; - } } hip->offset = hip->servers_len; hip->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (hip->hit != NULL) { - isc_mem_free(mctx, hip->hit); - } - if (hip->key != NULL) { - isc_mem_free(mctx, hip->key); - } - if (hip->servers != NULL) { - isc_mem_free(mctx, hip->servers); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/ipseckey_45.c b/lib/dns/rdata/generic/ipseckey_45.c index 272a38a4f1b..28138180863 100644 --- a/lib/dns/rdata/generic/ipseckey_45.c +++ b/lib/dns/rdata/generic/ipseckey_45.c @@ -400,13 +400,6 @@ tostruct_ipseckey(ARGS_TOSTRUCT) { if (ipseckey->keylength != 0U) { ipseckey->key = mem_maybedup(mctx, region.base, ipseckey->keylength); - if (ipseckey->key == NULL) { - if (ipseckey->gateway_type == 3) { - dns_name_free(&ipseckey->gateway, - ipseckey->mctx); - } - return (ISC_R_NOMEMORY); - } } else { ipseckey->key = NULL; } diff --git a/lib/dns/rdata/generic/isdn_20.c b/lib/dns/rdata/generic/isdn_20.c index 6ab97ac3a1f..f58c17e63d4 100644 --- a/lib/dns/rdata/generic/isdn_20.c +++ b/lib/dns/rdata/generic/isdn_20.c @@ -146,9 +146,6 @@ tostruct_isdn(ARGS_TOSTRUCT) { isdn->isdn_len = uint8_fromregion(&r); isc_region_consume(&r, 1); isdn->isdn = mem_maybedup(mctx, r.base, isdn->isdn_len); - if (isdn->isdn == NULL) { - return (ISC_R_NOMEMORY); - } isc_region_consume(&r, isdn->isdn_len); if (r.length == 0) { @@ -159,19 +156,10 @@ tostruct_isdn(ARGS_TOSTRUCT) { isc_region_consume(&r, 1); isdn->subaddress = mem_maybedup(mctx, r.base, isdn->subaddress_len); - if (isdn->subaddress == NULL) { - goto cleanup; - } } isdn->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL && isdn->isdn != NULL) { - isc_mem_free(mctx, isdn->isdn); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/key_25.c b/lib/dns/rdata/generic/key_25.c index c6e3eefce6b..688b6684ecb 100644 --- a/lib/dns/rdata/generic/key_25.c +++ b/lib/dns/rdata/generic/key_25.c @@ -355,10 +355,6 @@ generic_tostruct_key(ARGS_TOSTRUCT) { /* Data */ key->datalen = sr.length; key->data = mem_maybedup(mctx, sr.base, key->datalen); - if (key->data == NULL) { - return (ISC_R_NOMEMORY); - } - key->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/keydata_65533.c b/lib/dns/rdata/generic/keydata_65533.c index 4bab60e4b78..c5670d01abd 100644 --- a/lib/dns/rdata/generic/keydata_65533.c +++ b/lib/dns/rdata/generic/keydata_65533.c @@ -384,10 +384,6 @@ tostruct_keydata(ARGS_TOSTRUCT) { /* Data */ keydata->datalen = sr.length; keydata->data = mem_maybedup(mctx, sr.base, keydata->datalen); - if (keydata->data == NULL) { - return (ISC_R_NOMEMORY); - } - keydata->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/naptr_35.c b/lib/dns/rdata/generic/naptr_35.c index e6ed027f178..6f78b73315e 100644 --- a/lib/dns/rdata/generic/naptr_35.c +++ b/lib/dns/rdata/generic/naptr_35.c @@ -521,27 +521,18 @@ tostruct_naptr(ARGS_TOSTRUCT) { isc_region_consume(&r, 1); INSIST(naptr->flags_len <= r.length); naptr->flags = mem_maybedup(mctx, r.base, naptr->flags_len); - if (naptr->flags == NULL) { - goto cleanup; - } isc_region_consume(&r, naptr->flags_len); naptr->service_len = uint8_fromregion(&r); isc_region_consume(&r, 1); INSIST(naptr->service_len <= r.length); naptr->service = mem_maybedup(mctx, r.base, naptr->service_len); - if (naptr->service == NULL) { - goto cleanup; - } isc_region_consume(&r, naptr->service_len); naptr->regexp_len = uint8_fromregion(&r); isc_region_consume(&r, 1); INSIST(naptr->regexp_len <= r.length); naptr->regexp = mem_maybedup(mctx, r.base, naptr->regexp_len); - if (naptr->regexp == NULL) { - goto cleanup; - } isc_region_consume(&r, naptr->regexp_len); dns_name_init(&name, NULL); @@ -550,18 +541,6 @@ tostruct_naptr(ARGS_TOSTRUCT) { name_duporclone(&name, mctx, &naptr->replacement); naptr->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL && naptr->flags != NULL) { - isc_mem_free(mctx, naptr->flags); - } - if (mctx != NULL && naptr->service != NULL) { - isc_mem_free(mctx, naptr->service); - } - if (mctx != NULL && naptr->regexp != NULL) { - isc_mem_free(mctx, naptr->regexp); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/nsec3_50.c b/lib/dns/rdata/generic/nsec3_50.c index 8bc44f13c6b..6960f75ea62 100644 --- a/lib/dns/rdata/generic/nsec3_50.c +++ b/lib/dns/rdata/generic/nsec3_50.c @@ -306,34 +306,17 @@ tostruct_nsec3(ARGS_TOSTRUCT) { nsec3->salt_length = uint8_consume_fromregion(®ion); INSIST(nsec3->salt_length <= region.length); nsec3->salt = mem_maybedup(mctx, region.base, nsec3->salt_length); - if (nsec3->salt == NULL) { - return (ISC_R_NOMEMORY); - } isc_region_consume(®ion, nsec3->salt_length); nsec3->next_length = uint8_consume_fromregion(®ion); INSIST(nsec3->next_length <= region.length); nsec3->next = mem_maybedup(mctx, region.base, nsec3->next_length); - if (nsec3->next == NULL) { - goto cleanup; - } isc_region_consume(®ion, nsec3->next_length); nsec3->len = region.length; nsec3->typebits = mem_maybedup(mctx, region.base, region.length); - if (nsec3->typebits == NULL) { - goto cleanup; - } - nsec3->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (nsec3->next != NULL) { - isc_mem_free(mctx, nsec3->next); - } - isc_mem_free(mctx, nsec3->salt); - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/nsec3param_51.c b/lib/dns/rdata/generic/nsec3param_51.c index bac40b45f58..43f9a4512b0 100644 --- a/lib/dns/rdata/generic/nsec3param_51.c +++ b/lib/dns/rdata/generic/nsec3param_51.c @@ -243,9 +243,6 @@ tostruct_nsec3param(ARGS_TOSTRUCT) { INSIST(nsec3param->salt_length == region.length); nsec3param->salt = mem_maybedup(mctx, region.base, nsec3param->salt_length); - if (nsec3param->salt == NULL) { - return (ISC_R_NOMEMORY); - } isc_region_consume(®ion, nsec3param->salt_length); nsec3param->mctx = mctx; diff --git a/lib/dns/rdata/generic/nsec_47.c b/lib/dns/rdata/generic/nsec_47.c index 96db05fea77..01044ead264 100644 --- a/lib/dns/rdata/generic/nsec_47.c +++ b/lib/dns/rdata/generic/nsec_47.c @@ -178,18 +178,8 @@ tostruct_nsec(ARGS_TOSTRUCT) { nsec->len = region.length; nsec->typebits = mem_maybedup(mctx, region.base, region.length); - if (nsec->typebits == NULL) { - goto cleanup; - } - nsec->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL) { - dns_name_free(&nsec->next, mctx); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/null_10.c b/lib/dns/rdata/generic/null_10.c index 126e3618618..90ddd2234d5 100644 --- a/lib/dns/rdata/generic/null_10.c +++ b/lib/dns/rdata/generic/null_10.c @@ -108,10 +108,6 @@ tostruct_null(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); null->length = r.length; null->data = mem_maybedup(mctx, r.base, r.length); - if (null->data == NULL) { - return (ISC_R_NOMEMORY); - } - null->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/nxt_30.c b/lib/dns/rdata/generic/nxt_30.c index fa03bdf512b..1cc4c822c3e 100644 --- a/lib/dns/rdata/generic/nxt_30.c +++ b/lib/dns/rdata/generic/nxt_30.c @@ -257,18 +257,8 @@ tostruct_nxt(ARGS_TOSTRUCT) { nxt->len = region.length; nxt->typebits = mem_maybedup(mctx, region.base, region.length); - if (nxt->typebits == NULL) { - goto cleanup; - } - nxt->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL) { - dns_name_free(&nxt->next, mctx); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/openpgpkey_61.c b/lib/dns/rdata/generic/openpgpkey_61.c index b6db9d758b2..6beef9e491a 100644 --- a/lib/dns/rdata/generic/openpgpkey_61.c +++ b/lib/dns/rdata/generic/openpgpkey_61.c @@ -156,15 +156,8 @@ tostruct_openpgpkey(ARGS_TOSTRUCT) { */ sig->length = sr.length; sig->keyring = mem_maybedup(mctx, sr.base, sig->length); - if (sig->keyring == NULL) { - goto cleanup; - } - sig->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c index 1ac13764b77..6e82d3abdd2 100644 --- a/lib/dns/rdata/generic/opt_41.c +++ b/lib/dns/rdata/generic/opt_41.c @@ -330,10 +330,6 @@ tostruct_opt(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); opt->length = r.length; opt->options = mem_maybedup(mctx, r.base, r.length); - if (opt->options == NULL) { - return (ISC_R_NOMEMORY); - } - opt->offset = 0; opt->mctx = mctx; return (ISC_R_SUCCESS); diff --git a/lib/dns/rdata/generic/rrsig_46.c b/lib/dns/rdata/generic/rrsig_46.c index 1239d93cf17..a74675b2e62 100644 --- a/lib/dns/rdata/generic/rrsig_46.c +++ b/lib/dns/rdata/generic/rrsig_46.c @@ -501,18 +501,8 @@ tostruct_rrsig(ARGS_TOSTRUCT) { */ sig->siglen = sr.length; sig->signature = mem_maybedup(mctx, sr.base, sig->siglen); - if (sig->signature == NULL) { - goto cleanup; - } - sig->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL) { - dns_name_free(&sig->signer, mctx); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/sig_24.c b/lib/dns/rdata/generic/sig_24.c index 369369608dc..c585dfabda5 100644 --- a/lib/dns/rdata/generic/sig_24.c +++ b/lib/dns/rdata/generic/sig_24.c @@ -493,18 +493,8 @@ tostruct_sig(ARGS_TOSTRUCT) { */ sig->siglen = sr.length; sig->signature = mem_maybedup(mctx, sr.base, sig->siglen); - if (sig->signature == NULL) { - goto cleanup; - } - sig->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL) { - dns_name_free(&sig->signer, mctx); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/sink_40.c b/lib/dns/rdata/generic/sink_40.c index 2120a4a6a46..38104cf90c5 100644 --- a/lib/dns/rdata/generic/sink_40.c +++ b/lib/dns/rdata/generic/sink_40.c @@ -214,10 +214,6 @@ tostruct_sink(ARGS_TOSTRUCT) { /* Data */ sink->datalen = sr.length; sink->data = mem_maybedup(mctx, sr.base, sink->datalen); - if (sink->data == NULL) { - return (ISC_R_NOMEMORY); - } - sink->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/sshfp_44.c b/lib/dns/rdata/generic/sshfp_44.c index d71a3963ebe..5a214f326fa 100644 --- a/lib/dns/rdata/generic/sshfp_44.c +++ b/lib/dns/rdata/generic/sshfp_44.c @@ -218,10 +218,6 @@ tostruct_sshfp(ARGS_TOSTRUCT) { sshfp->length = region.length; sshfp->digest = mem_maybedup(mctx, region.base, region.length); - if (sshfp->digest == NULL) { - return (ISC_R_NOMEMORY); - } - sshfp->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/tkey_249.c b/lib/dns/rdata/generic/tkey_249.c index 66ad6c4445e..675b8273656 100644 --- a/lib/dns/rdata/generic/tkey_249.c +++ b/lib/dns/rdata/generic/tkey_249.c @@ -474,9 +474,6 @@ tostruct_tkey(ARGS_TOSTRUCT) { */ INSIST(tkey->keylen + 2U <= sr.length); tkey->key = mem_maybedup(mctx, sr.base, tkey->keylen); - if (tkey->key == NULL) { - goto cleanup; - } isc_region_consume(&sr, tkey->keylen); /* @@ -490,21 +487,8 @@ tostruct_tkey(ARGS_TOSTRUCT) { */ INSIST(tkey->otherlen <= sr.length); tkey->other = mem_maybedup(mctx, sr.base, tkey->otherlen); - if (tkey->other == NULL) { - goto cleanup; - } - tkey->mctx = mctx; return (ISC_R_SUCCESS); - -cleanup: - if (mctx != NULL) { - dns_name_free(&tkey->algorithm, mctx); - } - if (mctx != NULL && tkey->key != NULL) { - isc_mem_free(mctx, tkey->key); - } - return (ISC_R_NOMEMORY); } static inline void diff --git a/lib/dns/rdata/generic/tlsa_52.c b/lib/dns/rdata/generic/tlsa_52.c index 65a4f7fe136..298aae00403 100644 --- a/lib/dns/rdata/generic/tlsa_52.c +++ b/lib/dns/rdata/generic/tlsa_52.c @@ -231,10 +231,6 @@ generic_tostruct_tlsa(ARGS_TOSTRUCT) { tlsa->length = region.length; tlsa->data = mem_maybedup(mctx, region.base, region.length); - if (tlsa->data == NULL) { - return (ISC_R_NOMEMORY); - } - tlsa->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/txt_16.c b/lib/dns/rdata/generic/txt_16.c index 73b3f0c899e..36d75b491a9 100644 --- a/lib/dns/rdata/generic/txt_16.c +++ b/lib/dns/rdata/generic/txt_16.c @@ -172,10 +172,6 @@ generic_tostruct_txt(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); txt->txt_len = r.length; txt->txt = mem_maybedup(mctx, r.base, r.length); - if (txt->txt == NULL) { - return (ISC_R_NOMEMORY); - } - txt->offset = 0; txt->mctx = mctx; return (ISC_R_SUCCESS); diff --git a/lib/dns/rdata/generic/uri_256.c b/lib/dns/rdata/generic/uri_256.c index 626a34e2a0a..a613e4d9bb2 100644 --- a/lib/dns/rdata/generic/uri_256.c +++ b/lib/dns/rdata/generic/uri_256.c @@ -240,10 +240,6 @@ tostruct_uri(ARGS_TOSTRUCT) { */ uri->tgt_len = sr.length; uri->target = mem_maybedup(mctx, sr.base, sr.length); - if (uri->target == NULL) { - return (ISC_R_NOMEMORY); - } - uri->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/x25_19.c b/lib/dns/rdata/generic/x25_19.c index 63f6be827f4..f754443e63a 100644 --- a/lib/dns/rdata/generic/x25_19.c +++ b/lib/dns/rdata/generic/x25_19.c @@ -154,10 +154,6 @@ tostruct_x25(ARGS_TOSTRUCT) { x25->x25_len = uint8_fromregion(&r); isc_region_consume(&r, 1); x25->x25 = mem_maybedup(mctx, r.base, x25->x25_len); - if (x25->x25 == NULL) { - return (ISC_R_NOMEMORY); - } - x25->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/generic/zonemd_63.c b/lib/dns/rdata/generic/zonemd_63.c index f09ee5229c9..8c8625e8f47 100644 --- a/lib/dns/rdata/generic/zonemd_63.c +++ b/lib/dns/rdata/generic/zonemd_63.c @@ -272,10 +272,6 @@ tostruct_zonemd(ARGS_TOSTRUCT) { zonemd->length = region.length; zonemd->digest = mem_maybedup(mctx, region.base, region.length); - if (zonemd->digest == NULL) { - return (ISC_R_NOMEMORY); - } - zonemd->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/in_1/apl_42.c b/lib/dns/rdata/in_1/apl_42.c index 7885af233b6..bda153cd201 100644 --- a/lib/dns/rdata/in_1/apl_42.c +++ b/lib/dns/rdata/in_1/apl_42.c @@ -295,10 +295,6 @@ tostruct_in_apl(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); apl->apl_len = r.length; apl->apl = mem_maybedup(mctx, r.base, r.length); - if (apl->apl == NULL) { - return (ISC_R_NOMEMORY); - } - apl->offset = 0; apl->mctx = mctx; return (ISC_R_SUCCESS); diff --git a/lib/dns/rdata/in_1/atma_34.c b/lib/dns/rdata/in_1/atma_34.c index 30580d30565..c5f03c221f3 100644 --- a/lib/dns/rdata/in_1/atma_34.c +++ b/lib/dns/rdata/in_1/atma_34.c @@ -234,10 +234,6 @@ tostruct_in_atma(ARGS_TOSTRUCT) { isc_region_consume(&r, 1); atma->atma_len = r.length; atma->atma = mem_maybedup(mctx, r.base, r.length); - if (atma->atma == NULL) { - return (ISC_R_NOMEMORY); - } - atma->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/in_1/dhcid_49.c b/lib/dns/rdata/in_1/dhcid_49.c index ca3c3937392..dd83c51a407 100644 --- a/lib/dns/rdata/in_1/dhcid_49.c +++ b/lib/dns/rdata/in_1/dhcid_49.c @@ -152,10 +152,6 @@ tostruct_in_dhcid(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, ®ion); dhcid->dhcid = mem_maybedup(mctx, region.base, region.length); - if (dhcid->dhcid == NULL) { - return (ISC_R_NOMEMORY); - } - dhcid->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/in_1/eid_31.c b/lib/dns/rdata/in_1/eid_31.c index 38a3887f3f6..e71fda1af45 100644 --- a/lib/dns/rdata/in_1/eid_31.c +++ b/lib/dns/rdata/in_1/eid_31.c @@ -141,10 +141,6 @@ tostruct_in_eid(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); eid->eid_len = r.length; eid->eid = mem_maybedup(mctx, r.base, r.length); - if (eid->eid == NULL) { - return (ISC_R_NOMEMORY); - } - eid->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/in_1/nimloc_32.c b/lib/dns/rdata/in_1/nimloc_32.c index d96967f6bd8..f6045c5ace0 100644 --- a/lib/dns/rdata/in_1/nimloc_32.c +++ b/lib/dns/rdata/in_1/nimloc_32.c @@ -141,10 +141,6 @@ tostruct_in_nimloc(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); nimloc->nimloc_len = r.length; nimloc->nimloc = mem_maybedup(mctx, r.base, r.length); - if (nimloc->nimloc == NULL) { - return (ISC_R_NOMEMORY); - } - nimloc->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/in_1/nsap_22.c b/lib/dns/rdata/in_1/nsap_22.c index 379842346fa..22be56e2da9 100644 --- a/lib/dns/rdata/in_1/nsap_22.c +++ b/lib/dns/rdata/in_1/nsap_22.c @@ -176,10 +176,6 @@ tostruct_in_nsap(ARGS_TOSTRUCT) { dns_rdata_toregion(rdata, &r); nsap->nsap_len = r.length; nsap->nsap = mem_maybedup(mctx, r.base, r.length); - if (nsap->nsap == NULL) { - return (ISC_R_NOMEMORY); - } - nsap->mctx = mctx; return (ISC_R_SUCCESS); } diff --git a/lib/dns/rdata/in_1/svcb_64.c b/lib/dns/rdata/in_1/svcb_64.c index e783f060835..b2b8657b970 100644 --- a/lib/dns/rdata/in_1/svcb_64.c +++ b/lib/dns/rdata/in_1/svcb_64.c @@ -1014,13 +1014,6 @@ generic_tostruct_in_svcb(ARGS_TOSTRUCT) { svcb->svclen = region.length; svcb->svc = mem_maybedup(mctx, region.base, region.length); - if (svcb->svc == NULL) { - if (mctx != NULL) { - dns_name_free(&svcb->svcdomain, svcb->mctx); - } - return (ISC_R_NOMEMORY); - } - svcb->offset = 0; svcb->mctx = mctx; diff --git a/lib/dns/rdata/in_1/wks_11.c b/lib/dns/rdata/in_1/wks_11.c index 66883beeb2f..f8567e6ec7f 100644 --- a/lib/dns/rdata/in_1/wks_11.c +++ b/lib/dns/rdata/in_1/wks_11.c @@ -323,9 +323,6 @@ tostruct_in_wks(ARGS_TOSTRUCT) { isc_region_consume(®ion, 1); wks->map_len = region.length; wks->map = mem_maybedup(mctx, region.base, region.length); - if (wks->map == NULL) { - return (ISC_R_NOMEMORY); - } wks->mctx = mctx; return (ISC_R_SUCCESS); }