Skip to content

[pull] master from php:master#1019

Merged
pull[bot] merged 13 commits into
turkdevops:masterfrom
php:master
Jun 21, 2026
Merged

[pull] master from php:master#1019
pull[bot] merged 13 commits into
turkdevops:masterfrom
php:master

Conversation

@pull

@pull pull Bot commented Jun 21, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

iliaal and others added 13 commits June 21, 2026 12:29
imageloadfont() read the font header with `(char*)&font[b]`, which scales
the byte counter b by sizeof(gdFont) rather than advancing one byte, so a
short php_stream_read() (deliverable by a user stream wrapper) makes the
loop write hdr_size-b bytes past the emalloc(sizeof(gdFont)) buffer. Index
the destination by bytes, matching the body read a few lines below.

Closes GH-22380
* PHP-8.4:
  ext/gd: fix out-of-bounds write reading font header on short reads
* PHP-8.5:
  ext/gd: fix out-of-bounds write reading font header on short reads
The cleanup block guarded on `unk` but released `obj`. On a successful
GetActiveObject() this released the IDispatch proxy twice and leaked the
IUnknown; on a QueryInterface failure `obj` is still NULL while `unk` is
live, so the same line released NULL through a NULL vtable and crashed
instead of throwing. Release `unk` so each interface pointer is released
exactly once and the failure path no longer crashes.

Closes GH-22378
* PHP-8.4:
  ext/com_dotnet: release the held IUnknown in com_get_active_object()
* PHP-8.5:
  ext/com_dotnet: release the held IUnknown in com_get_active_object()
The four sodium pwhash functions queued a zend_argument_error for an
opslimit or memlimit below the documented minimum but fell through to the
KDF instead of returning. When libsodium rejects the value the precise
argument error is clobbered by a generic "internal error"; when it
accepts the value the full KDF runs before the queued error surfaces,
defeating the minimum-cost gate. Add the missing RETURN_THROWS() so each
lower-bound check returns like its sibling upper-bound branches.

Closes GH-22383
* PHP-8.4:
  Throw on below-minimum opslimit/memlimit in sodium pwhash
* PHP-8.5:
  Throw on below-minimum opslimit/memlimit in sodium pwhash
* PHP-8.4:
  Fix GH-22360: convert.base64-encode corruption on incremental flush.
* PHP-8.5:
  Fix GH-22360: convert.base64-encode corruption on incremental flush.
…n stored in property (#22376)

* zend_ast: Surround function by parens when exporting calls to function stored in property

The extra parentheses are needed to disambiguate method calls from calls to a
function stored in a property.

Fixes #22373.

* zend_ast: Avoid needless indirection through `zend_ast_export_ns_name()`
@pull pull Bot locked and limited conversation to collaborators Jun 21, 2026
@pull pull Bot added the ⤵️ pull label Jun 21, 2026
@pull pull Bot merged commit cad6ed2 into turkdevops:master Jun 21, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants