return FAILURE;
}
- key = PEM_read_bio_PUBKEY(in, NULL,NULL, NULL);
+ key = PEM_read_bio_PUBKEY(in, NULL, NULL, NULL);
BIO_free(in);
zend_string_release_ex(pubkey, 0);
if (EVP_VerifyFinal(md_ctx, (unsigned char *)sig, sig_len, key) != 1) {
/* 1: signature verified, 0: signature does not match, -1: failed signature operation */
+ EVP_PKEY_free(key);
EVP_MD_CTX_destroy(md_ctx);
if (error) {
return FAILURE;
}
+ EVP_PKEY_free(key);
EVP_MD_CTX_destroy(md_ctx);
#endif
sigbuf = emalloc(siglen + 1);
if (!EVP_SignInit(md_ctx, EVP_sha1())) {
+ EVP_PKEY_free(key);
efree(sigbuf);
if (error) {
spprintf(error, 0, "unable to initialize openssl signature for phar \"%s\"", phar->fname);
while ((sig_len = php_stream_read(fp, (char*)buf, sizeof(buf))) > 0) {
if (!EVP_SignUpdate(md_ctx, buf, sig_len)) {
+ EVP_PKEY_free(key);
efree(sigbuf);
if (error) {
spprintf(error, 0, "unable to update the openssl signature for phar \"%s\"", phar->fname);
}
if (!EVP_SignFinal (md_ctx, sigbuf, &siglen, key)) {
+ EVP_PKEY_free(key);
efree(sigbuf);
if (error) {
spprintf(error, 0, "unable to write phar \"%s\" with requested openssl signature", phar->fname);
}
sigbuf[siglen] = '\0';
+ EVP_PKEY_free(key);
EVP_MD_CTX_destroy(md_ctx);
#else
size_t siglen;