diff options
author | jsg <> | 2014-04-18 03:28:12 +0000 |
---|---|---|
committer | jsg <> | 2014-04-18 03:28:12 +0000 |
commit | 5a7ffb3f60e72d102501cccb5aeb45d9699be529 (patch) | |
tree | 212f74d33fb971b199045a6fc9cb077aff1c5eb4 /src | |
parent | 0a67455153f1c0678e24f73ea923a92660c9e011 (diff) | |
download | openbsd-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.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/pkcs7/pk7_doit.c | 4 |
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 | ||