diff --git a/crypto/conf/conf_mod.c b/crypto/conf/conf_mod.c index cef805dfcaf1fefb70fdb396fdb4f8fb104e551f..604518aef5a6f055031d18418d854da6c80d4144 100644 --- a/crypto/conf/conf_mod.c +++ b/crypto/conf/conf_mod.c @@ -286,8 +286,13 @@ static CONF_MODULE *module_add(DSO *dso, const char *name, tmod->name = OPENSSL_strdup(name); tmod->init = ifunc; tmod->finish = ffunc; + if (tmod->name == NULL) { + OPENSSL_free(tmod); + return NULL; + } if (!sk_CONF_MODULE_push(supported_modules, tmod)) { + OPENSSL_free(tmod->name); OPENSSL_free(tmod); return NULL; }