diff --git a/CHANGES b/CHANGES index 35b32936fe..a71edfb06a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4230. [contrib] dlz_wildcard_dynamic.c:dlz_create could return a + uninitalised result. [RT #40839] + 4229. [bug] A variable could be used uninitalised in dns_update_signaturesinc. [RT #40784] diff --git a/contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c b/contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c index 8225d1ac80..875d4ff12a 100644 --- a/contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c +++ b/contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c @@ -434,12 +434,11 @@ dlz_create(const char *dlzname, unsigned int argc, char *argv[], DLZ_LIST_INIT(cd->rrs_list); cd->zone_pattern = strdup(argv[1]); - if (cd->zone_pattern == NULL) - goto cleanup; - cd->axfr_pattern = strdup(argv[2]); - if (cd->axfr_pattern == NULL) + if (cd->zone_pattern == NULL || cd->axfr_pattern == NULL) { + result = ISC_R_NOMEMORY; goto cleanup; + } def_ttl = strtol(argv[3], &endp, 10); if (*endp != '\0' || def_ttl < 0) {