void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld)
{
+ if (bld == NULL)
+ return;
free_all_params(bld);
sk_OSSL_PARAM_BLD_DEF_free(bld->params);
OPENSSL_free(bld);
param[i].key = pd->key;
param[i].data_type = pd->type;
param[i].data_size = pd->size;
- param[i].return_size = 0;
+ param[i].return_size = OSSL_PARAM_UNMODIFIED;
if (pd->secure) {
p = secure;
if (s == NULL) {
CRYPTOerr(CRYPTO_F_OSSL_PARAM_BLD_TO_PARAM,
CRYPTO_R_SECURE_MALLOC_FAILURE);
- OPENSSL_free(bld);
return NULL;
}
}
params = OPENSSL_malloc(total);
if (params == NULL) {
CRYPTOerr(CRYPTO_F_OSSL_PARAM_BLD_TO_PARAM, ERR_R_MALLOC_FAILURE);
- OPENSSL_free(bld);
OPENSSL_secure_free(s);
return NULL;
}