From 0dc485ffb6ca6e90979561db1705f6a89be8b8ed Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 30 Sep 2015 15:33:16 +1000 Subject: [PATCH] 4230. [contrib] dlz_wildcard_dynamic.c:dlz_create could return a uninitalised result. [RT #40839] --- CHANGES | 3 +++ contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c | 7 +++---- 2 files changed, 6 insertions(+), 4 deletions(-) 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) {