@@ -1531,7 +1531,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
15311531 BIO * in ;
15321532 EVP_PKEY * key ;
15331533 EVP_MD * mdtype = (EVP_MD * ) EVP_sha1 ();
1534- EVP_MD_CTX md_ctx ;
1534+ EVP_MD_CTX * md_ctx ;
15351535#else
15361536 int tempsig ;
15371537#endif
@@ -1608,7 +1608,8 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
16081608 return FAILURE ;
16091609 }
16101610
1611- EVP_VerifyInit (& md_ctx , mdtype );
1611+ md_ctx = EVP_MD_CTX_create ();
1612+ EVP_VerifyInit (md_ctx , mdtype );
16121613 read_len = end_of_phar ;
16131614
16141615 if (read_len > sizeof (buf )) {
@@ -1620,17 +1621,17 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
16201621 php_stream_seek (fp , 0 , SEEK_SET );
16211622
16221623 while (read_size && (len = php_stream_read (fp , (char * )buf , read_size )) > 0 ) {
1623- EVP_VerifyUpdate (& md_ctx , buf , len );
1624+ EVP_VerifyUpdate (md_ctx , buf , len );
16241625 read_len -= (off_t )len ;
16251626
16261627 if (read_len < read_size ) {
16271628 read_size = (int )read_len ;
16281629 }
16291630 }
16301631
1631- if (EVP_VerifyFinal (& md_ctx , (unsigned char * )sig , sig_len , key ) != 1 ) {
1632+ if (EVP_VerifyFinal (md_ctx , (unsigned char * )sig , sig_len , key ) != 1 ) {
16321633 /* 1: signature verified, 0: signature does not match, -1: failed signature operation */
1633- EVP_MD_CTX_cleanup ( & md_ctx );
1634+ EVP_MD_CTX_destroy ( md_ctx );
16341635
16351636 if (error ) {
16361637 spprintf (error , 0 , "broken openssl signature" );
@@ -1639,7 +1640,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ
16391640 return FAILURE ;
16401641 }
16411642
1642- EVP_MD_CTX_cleanup ( & md_ctx );
1643+ EVP_MD_CTX_destroy ( md_ctx );
16431644#endif
16441645
16451646 * signature_len = phar_hex_str ((const char * )sig , sig_len , signature TSRMLS_CC );
0 commit comments