summaryrefslogtreecommitdiffstats
path: root/crypto/x509/v3_ist.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/x509/v3_ist.c')
-rw-r--r--crypto/x509/v3_ist.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/crypto/x509/v3_ist.c b/crypto/x509/v3_ist.c
index cb3a68cf40..c30725dc48 100644
--- a/crypto/x509/v3_ist.c
+++ b/crypto/x509/v3_ist.c
@@ -50,43 +50,38 @@ static ISSUER_SIGN_TOOL *v2i_issuer_sign_tool(X509V3_EXT_METHOD *method, X509V3_
}
if (strcmp(cnf->name, "signTool") == 0) {
ist->signTool = ASN1_UTF8STRING_new();
- if (ist->signTool == NULL) {
+ if (ist->signTool == NULL || !ASN1_STRING_set(ist->signTool, cnf->value, strlen(cnf->value))) {
ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB);
- ISSUER_SIGN_TOOL_free(ist);
- return NULL;
+ goto err;
}
- ASN1_STRING_set(ist->signTool, cnf->value, strlen(cnf->value));
} else if (strcmp(cnf->name, "cATool") == 0) {
ist->cATool = ASN1_UTF8STRING_new();
- if (ist->cATool == NULL) {
+ if (ist->cATool == NULL || !ASN1_STRING_set(ist->cATool, cnf->value, strlen(cnf->value))) {
ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB);
- ISSUER_SIGN_TOOL_free(ist);
- return NULL;
+ goto err;
}
- ASN1_STRING_set(ist->cATool, cnf->value, strlen(cnf->value));
} else if (strcmp(cnf->name, "signToolCert") == 0) {
ist->signToolCert = ASN1_UTF8STRING_new();
- if (ist->signToolCert == NULL) {
+ if (ist->signToolCert == NULL || !ASN1_STRING_set(ist->signToolCert, cnf->value, strlen(cnf->value))) {
ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB);
- ISSUER_SIGN_TOOL_free(ist);
- return NULL;
+ goto err;
}
- ASN1_STRING_set(ist->signToolCert, cnf->value, strlen(cnf->value));
} else if (strcmp(cnf->name, "cAToolCert") == 0) {
ist->cAToolCert = ASN1_UTF8STRING_new();
- if (ist->cAToolCert == NULL) {
+ if (ist->cAToolCert == NULL || !ASN1_STRING_set(ist->cAToolCert, cnf->value, strlen(cnf->value))) {
ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB);
- ISSUER_SIGN_TOOL_free(ist);
- return NULL;
+ goto err;
}
- ASN1_STRING_set(ist->cAToolCert, cnf->value, strlen(cnf->value));
} else {
ERR_raise(ERR_LIB_X509V3, ERR_R_PASSED_INVALID_ARGUMENT);
- ISSUER_SIGN_TOOL_free(ist);
- return NULL;
+ goto err;
}
}
return ist;
+
+err:
+ ISSUER_SIGN_TOOL_free(ist);
+ return NULL;
}
static int i2r_issuer_sign_tool(X509V3_EXT_METHOD *method,