Loading crypto/x509v3/v3_utl.c +4 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ int X509V3_add_value(const char *name, const char *value, { CONF_VALUE *vtmp = NULL; char *tname = NULL, *tvalue = NULL; int sk_allocated = (*extlist == NULL); if (name && (tname = OPENSSL_strdup(name)) == NULL) goto err; Loading @@ -45,7 +46,7 @@ int X509V3_add_value(const char *name, const char *value, goto err; if ((vtmp = OPENSSL_malloc(sizeof(*vtmp))) == NULL) goto err; if (*extlist == NULL && (*extlist = sk_CONF_VALUE_new_null()) == NULL) if (sk_allocated && (*extlist = sk_CONF_VALUE_new_null()) == NULL) goto err; vtmp->section = NULL; vtmp->name = tname; Loading @@ -55,6 +56,8 @@ int X509V3_add_value(const char *name, const char *value, return 1; err: X509V3err(X509V3_F_X509V3_ADD_VALUE, ERR_R_MALLOC_FAILURE); if (sk_allocated) sk_CONF_VALUE_free(*extlist); OPENSSL_free(vtmp); OPENSSL_free(tname); OPENSSL_free(tvalue); Loading ssl/ssl_cert.c +5 −3 Original line number Diff line number Diff line Loading @@ -468,18 +468,20 @@ STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk) SSLerr(SSL_F_SSL_DUP_CA_LIST, ERR_R_MALLOC_FAILURE); return NULL; } if (!sk_X509_NAME_reserve(ret, num)) if (!sk_X509_NAME_reserve(ret, num)) { sk_X509_NAME_free(ret); return NULL; } for (i = 0; i < num; i++) { name = X509_NAME_dup(sk_X509_NAME_value(sk, i)); if (name == NULL) { SSLerr(SSL_F_SSL_DUP_CA_LIST, ERR_R_MALLOC_FAILURE); sk_X509_NAME_pop_free(ret, X509_NAME_free); X509_NAME_free(name); return NULL; } sk_X509_NAME_push(ret, name); /* Cannot fail after reserve call */ } return (ret); return ret; } void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list) Loading Loading
crypto/x509v3/v3_utl.c +4 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ int X509V3_add_value(const char *name, const char *value, { CONF_VALUE *vtmp = NULL; char *tname = NULL, *tvalue = NULL; int sk_allocated = (*extlist == NULL); if (name && (tname = OPENSSL_strdup(name)) == NULL) goto err; Loading @@ -45,7 +46,7 @@ int X509V3_add_value(const char *name, const char *value, goto err; if ((vtmp = OPENSSL_malloc(sizeof(*vtmp))) == NULL) goto err; if (*extlist == NULL && (*extlist = sk_CONF_VALUE_new_null()) == NULL) if (sk_allocated && (*extlist = sk_CONF_VALUE_new_null()) == NULL) goto err; vtmp->section = NULL; vtmp->name = tname; Loading @@ -55,6 +56,8 @@ int X509V3_add_value(const char *name, const char *value, return 1; err: X509V3err(X509V3_F_X509V3_ADD_VALUE, ERR_R_MALLOC_FAILURE); if (sk_allocated) sk_CONF_VALUE_free(*extlist); OPENSSL_free(vtmp); OPENSSL_free(tname); OPENSSL_free(tvalue); Loading
ssl/ssl_cert.c +5 −3 Original line number Diff line number Diff line Loading @@ -468,18 +468,20 @@ STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk) SSLerr(SSL_F_SSL_DUP_CA_LIST, ERR_R_MALLOC_FAILURE); return NULL; } if (!sk_X509_NAME_reserve(ret, num)) if (!sk_X509_NAME_reserve(ret, num)) { sk_X509_NAME_free(ret); return NULL; } for (i = 0; i < num; i++) { name = X509_NAME_dup(sk_X509_NAME_value(sk, i)); if (name == NULL) { SSLerr(SSL_F_SSL_DUP_CA_LIST, ERR_R_MALLOC_FAILURE); sk_X509_NAME_pop_free(ret, X509_NAME_free); X509_NAME_free(name); return NULL; } sk_X509_NAME_push(ret, name); /* Cannot fail after reserve call */ } return (ret); return ret; } void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list) Loading