diff options
author | Jakub Zelenka <bukka@php.net> | 2016-02-28 20:05:46 +0000 |
---|---|---|
committer | Jakub Zelenka <bukka@php.net> | 2016-07-17 17:33:41 +0100 |
commit | 3a8531e767440a8984671c3db69ee9c6e2bb7b85 (patch) | |
tree | c105f31d4f5402a2769206be58ab03705552470e | |
parent | e1496f45fd53c60df8755edfd556aa733fc4810d (diff) | |
download | php-git-3a8531e767440a8984671c3db69ee9c6e2bb7b85.tar.gz |
Use opaque EVP_MD_CTX in openssl_digest
-rw-r--r-- | ext/openssl/openssl.c | 10 |
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); } /* }}} */ |