Skip to content

[pull] master from php:master#1004

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

[pull] master from php:master#1004
pull[bot] merged 6 commits into
turkdevops:masterfrom
php:master

Conversation

@pull

@pull pull Bot commented Jun 15, 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 : )

morrisonlevi and others added 6 commits June 15, 2026 10:17
…ing (#22221)

Inheritance cache dependencies are collected while a class is being
linked. During delayed variance resolution, autoloading can re-enter
class linking and use the current class while it is only nearly linked.
If that class is persisted in the inheritance cache, a later request
can replay dependencies in a different order and observe an incomplete
hierarchy.

When delayed autoloading causes the class to be used through the
unlinked/nearly-linked lookup path, mark it as non-cacheable after
load_delayed_classes() returns. This also catches cases where the
class's variance obligations were resolved reentrantly, before the
direct resolve_delayed_variance_obligations() call would run.

If dependency tracking already allocated a temporary dependency table,
free it when cache insertion is skipped. Restrict this cleanup to
classes that entered inheritance-cache construction, because otherwise
inheritance_cache is not a dependency table and may contain unrelated
or uninitialized data. This preserves inheritance-cache use for
delayed-variance classes that did not participate in this reentrant
cycle.

With the invalid cache entry prevented, unlinked_instanceof() can keep
using instanceof_function() for linked classes.
* PHP-8.4:
  fix GH-20469: unsafe inheritance cache replay with reentrant autoloading (#22221)
* PHP-8.5:
  Update NEWS for PR 22221
  fix GH-20469: unsafe inheritance cache replay with reentrant autoloading (#22221)
Fix #22285

Since 8.5 SoapServer::handle() uses the HTTP SOAPAction header to select
the operation, falling back to the request body otherwise. An empty
header made every request match the first WSDL operation. Skip empty
SOAPAction headers so dispatch falls back to body inspection.

close GH-22304
* PHP-8.5:
  ext/soap: ignore empty SOAPAction header during server dispatch.
@pull pull Bot locked and limited conversation to collaborators Jun 15, 2026
@pull pull Bot added the ⤵️ pull label Jun 15, 2026
@pull pull Bot merged commit de9472d into turkdevops:master Jun 15, 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.

2 participants