Skip to content

Commit 3ee2ade

Browse files
committed
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1: Add missing check on EVP_VerifyUpdate() in phar util
2 parents e25e14a + 0d07b6d commit 3ee2ade

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ PHP NEWS
4444
. Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt).
4545
(KapitanOczywisty, CViniciusSDias)
4646

47+
- Phar:
48+
. Add missing check on EVP_VerifyUpdate() in phar util. (nielsdos)
49+
4750
- PHPDBG:
4851
. Fixed bug GH-9669 (phpdbg -h options doesn't list the -z option). (adsr)
4952

ext/phar/util.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1599,7 +1599,9 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, uint32_t sig_type,
15991599
php_stream_seek(fp, 0, SEEK_SET);
16001600

16011601
while (read_size && (len = php_stream_read(fp, (char*)buf, read_size)) > 0) {
1602-
EVP_VerifyUpdate (md_ctx, buf, len);
1602+
if (UNEXPECTED(EVP_VerifyUpdate (md_ctx, buf, len) == 0)) {
1603+
goto failure;
1604+
}
16031605
read_len -= (zend_off_t)len;
16041606

16051607
if (read_len < read_size) {
@@ -1608,6 +1610,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, uint32_t sig_type,
16081610
}
16091611

16101612
if (EVP_VerifyFinal(md_ctx, (unsigned char *)sig, sig_len, key) != 1) {
1613+
failure:
16111614
/* 1: signature verified, 0: signature does not match, -1: failed signature operation */
16121615
EVP_PKEY_free(key);
16131616
EVP_MD_CTX_destroy(md_ctx);

0 commit comments

Comments
 (0)