Skip to content

[pull] master from php:master#840

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

[pull] master from php:master#840
pull[bot] merged 4 commits into
dolfly: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 added 4 commits June 20, 2026 19:01
…ed behavior (#21433)

Negate after casting to unsigned instead of before, avoiding signed
integer overflow when offset is ZEND_LONG_MIN. The same pattern existed
in the pdo_sqlite and sqlite3 stream seek handlers.

Closes GH-20964
Closes GH-20927
For a megamorphic call the tracing JIT built the observer handler pointer
with the ir_PHI_2 operands reversed relative to the ir_MERGE_WITH
predecessor order, so a user function read the internal_function_extension
slot instead of op_array_extension. When an extension reserves an op_array
handle before the observer registers the two indices differ, that slot
holds 0, and the JIT calls a NULL begin handler.

The default-off zend_test.observer.reserve_op_array_handle INI forces that
index mismatch so the regression test can reproduce the crash.

Fixes GH-22158
Closes GH-22258
* PHP-8.4:
  Fix GH-22158: JIT observer dispatch through wrong run_time_cache slot
* PHP-8.5:
  Fix GH-22158: JIT observer dispatch through wrong run_time_cache slot
@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 0fff3cc into dolfly:master Jun 21, 2026
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.

1 participant