summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsg <>2014-04-18 03:28:12 +0000
committerjsg <>2014-04-18 03:28:12 +0000
commit5a7ffb3f60e72d102501cccb5aeb45d9699be529 (patch)
tree212f74d33fb971b199045a6fc9cb077aff1c5eb4 /src
parent0a67455153f1c0678e24f73ea923a92660c9e011 (diff)
downloadopenbsd-5a7ffb3f60e72d102501cccb5aeb45d9699be529.tar.gz
openbsd-5a7ffb3f60e72d102501cccb5aeb45d9699be529.tar.bz2
openbsd-5a7ffb3f60e72d102501cccb5aeb45d9699be529.zip
fix another potential double free
ok miod@ lteo@ jca@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/pkcs7/pk7_doit.c4
-rw-r--r--src/lib/libssl/src/crypto/pkcs7/pk7_doit.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_doit.c b/src/lib/libcrypto/pkcs7/pk7_doit.c
index 396a863f3b..fbe58cd45f 100644
--- a/src/lib/libcrypto/pkcs7/pk7_doit.c
+++ b/src/lib/libcrypto/pkcs7/pk7_doit.c
@@ -928,6 +928,7 @@ int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
928 if (EVP_DigestSignUpdate(&mctx,abuf,alen) <= 0) 928 if (EVP_DigestSignUpdate(&mctx,abuf,alen) <= 0)
929 goto err; 929 goto err;
930 free(abuf); 930 free(abuf);
931 abuf = NULL;
931 if (EVP_DigestSignFinal(&mctx, NULL, &siglen) <= 0) 932 if (EVP_DigestSignFinal(&mctx, NULL, &siglen) <= 0)
932 goto err; 933 goto err;
933 abuf = malloc(siglen); 934 abuf = malloc(siglen);
@@ -950,8 +951,7 @@ int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
950 return 1; 951 return 1;
951 952
952 err: 953 err:
953 if (abuf) 954 free(abuf);
954 free(abuf);
955 EVP_MD_CTX_cleanup(&mctx); 955 EVP_MD_CTX_cleanup(&mctx);
956 return 0; 956 return 0;
957 957
diff --git a/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c b/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c
index 396a863f3b..fbe58cd45f 100644
--- a/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c
+++ b/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c
@@ -928,6 +928,7 @@ int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
928 if (EVP_DigestSignUpdate(&mctx,abuf,alen) <= 0) 928 if (EVP_DigestSignUpdate(&mctx,abuf,alen) <= 0)
929 goto err; 929 goto err;
930 free(abuf); 930 free(abuf);
931 abuf = NULL;
931 if (EVP_DigestSignFinal(&mctx, NULL, &siglen) <= 0) 932 if (EVP_DigestSignFinal(&mctx, NULL, &siglen) <= 0)
932 goto err; 933 goto err;
933 abuf = malloc(siglen); 934 abuf = malloc(siglen);
@@ -950,8 +951,7 @@ int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
950 return 1; 951 return 1;
951 952
952 err: 953 err:
953 if (abuf) 954 free(abuf);
954 free(abuf);
955 EVP_MD_CTX_cleanup(&mctx); 955 EVP_MD_CTX_cleanup(&mctx);
956 return 0; 956 return 0;
957 957