summaryrefslogtreecommitdiff
path: root/usr/src/common/openssl/crypto/pkcs12/p12_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/common/openssl/crypto/pkcs12/p12_init.c')
-rw-r--r--usr/src/common/openssl/crypto/pkcs12/p12_init.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/usr/src/common/openssl/crypto/pkcs12/p12_init.c b/usr/src/common/openssl/crypto/pkcs12/p12_init.c
index eb837a78cf..6bdc132631 100644
--- a/usr/src/common/openssl/crypto/pkcs12/p12_init.c
+++ b/usr/src/common/openssl/crypto/pkcs12/p12_init.c
@@ -62,7 +62,7 @@
/* Initialise a PKCS12 structure to take data */
-PKCS12 *PKCS12_init (int mode)
+PKCS12 *PKCS12_init(int mode)
{
PKCS12 *pkcs12;
if (!(pkcs12 = PKCS12_new())) {
@@ -76,15 +76,17 @@ PKCS12 *PKCS12_init (int mode)
if (!(pkcs12->authsafes->d.data =
M_ASN1_OCTET_STRING_new())) {
PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
break;
default:
- PKCS12err(PKCS12_F_PKCS12_INIT,PKCS12_R_UNSUPPORTED_PKCS12_MODE);
- PKCS12_free(pkcs12);
- return NULL;
- break;
+ PKCS12err(PKCS12_F_PKCS12_INIT,
+ PKCS12_R_UNSUPPORTED_PKCS12_MODE);
+ goto err;
}
return pkcs12;
+err:
+ if (pkcs12 != NULL) PKCS12_free(pkcs12);
+ return NULL;
}