diff options
author | Matt Caswell <matt@openssl.org> | 2016-06-10 15:30:09 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-06-10 16:44:06 +0100 |
commit | 4457017587efae316ac10b159f2e5b0cc81d9921 (patch) | |
tree | 3e95e4afff0b9f1c7e886f871283b03e90f0e643 | |
parent | f6186cfba64593d3cefd6851a487a21abd0657a3 (diff) |
Fix an error path leak in do_ext_nconf()
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit 8605abf13523579ecab8b1f2a4bcb8354d94af79)
-rw-r--r-- | crypto/x509v3/v3_conf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/x509v3/v3_conf.c b/crypto/x509v3/v3_conf.c index eeff8bd185..c1b4c1a89f 100644 --- a/crypto/x509v3/v3_conf.c +++ b/crypto/x509v3/v3_conf.c @@ -135,11 +135,13 @@ static X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid, nval = NCONF_get_section(conf, value + 1); else nval = X509V3_parse_list(value); - if (sk_CONF_VALUE_num(nval) <= 0) { + if (nval == NULL || sk_CONF_VALUE_num(nval) <= 0) { X509V3err(X509V3_F_DO_EXT_NCONF, X509V3_R_INVALID_EXTENSION_STRING); ERR_add_error_data(4, "name=", OBJ_nid2sn(ext_nid), ",section=", value); + if (*value != '@') + sk_CONF_VALUE_free(nval); return NULL; } ext_struc = method->v2i(method, ctx, nval); |