diff options
Diffstat (limited to 'crypto/conf/conf_api.c')
-rw-r--r-- | crypto/conf/conf_api.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/conf/conf_api.c b/crypto/conf/conf_api.c index ade54839bb..9606b7f222 100644 --- a/crypto/conf/conf_api.c +++ b/crypto/conf/conf_api.c @@ -204,12 +204,14 @@ CONF_VALUE *_CONF_new_section(CONF *conf, const char *section) v->value = (char *)sk; vv = lh_CONF_VALUE_insert(conf->data, v); - if (vv != NULL) + if (vv != NULL || lh_CONF_VALUE_error(conf->data) > 0) goto err; return v; err: sk_CONF_VALUE_free(sk); + if (v != NULL) + OPENSSL_free(v->section); OPENSSL_free(v); return NULL; } |