summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Zelenka <bukka@php.net>2016-02-28 20:05:46 +0000
committerJakub Zelenka <bukka@php.net>2016-07-17 17:33:41 +0100
commit3a8531e767440a8984671c3db69ee9c6e2bb7b85 (patch)
treec105f31d4f5402a2769206be58ab03705552470e
parente1496f45fd53c60df8755edfd556aa733fc4810d (diff)
downloadphp-git-3a8531e767440a8984671c3db69ee9c6e2bb7b85.tar.gz
Use opaque EVP_MD_CTX in openssl_digest
-rw-r--r--ext/openssl/openssl.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index e288848107..4b07e0ea7f 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -5726,7 +5726,7 @@ PHP_FUNCTION(openssl_digest)
char *data, *method;
size_t data_len, method_len;
const EVP_MD *mdtype;
- EVP_MD_CTX md_ctx;
+ EVP_MD_CTX *md_ctx;
unsigned int siglen;
zend_string *sigbuf;
@@ -5742,9 +5742,9 @@ PHP_FUNCTION(openssl_digest)
siglen = EVP_MD_size(mdtype);
sigbuf = zend_string_alloc(siglen, 0);
- if (EVP_DigestInit(&md_ctx, mdtype) &&
- EVP_DigestUpdate(&md_ctx, (unsigned char *)data, data_len) &&
- EVP_DigestFinal (&md_ctx, (unsigned char *)ZSTR_VAL(sigbuf), &siglen)) {
+ if (EVP_DigestInit(md_ctx, mdtype) &&
+ EVP_DigestUpdate(md_ctx, (unsigned char *)data, data_len) &&
+ EVP_DigestFinal (md_ctx, (unsigned char *)ZSTR_VAL(sigbuf), &siglen)) {
if (raw_output) {
ZSTR_VAL(sigbuf)[siglen] = '\0';
ZSTR_LEN(sigbuf) = siglen;
@@ -5763,6 +5763,8 @@ PHP_FUNCTION(openssl_digest)
zend_string_release(sigbuf);
RETVAL_FALSE;
}
+
+ EVP_MD_CTX_destroy(md_ctx);
}
/* }}} */