Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jul 30, 2025

See Commits and Changes for more details.


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

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

iluuu1994 and others added 8 commits July 30, 2025 13:34
Solve this with the same pattern as ZEND_AST_GREATER[_EQUAL].

Fixes OSS-Fuzz #434346548
Closes GH-19291
* PHP-8.3:
  Fix failed assertion with throwing __toString in binary const expr
* PHP-8.4:
  Fix failed assertion with throwing __toString in binary const expr
This is a comprehensive refactoring of the error mechanism of the Intl extension.

By moving the prefixing of the current method/function being executed to actual error message creation by accessing the execution context, we get the following benefits:
- Accurate error messages indicating *what* call caused the error
  - As we *always* "copy" the message, the `copyMsg` arg becomes unused, meaning we can reduce the size of the `intl_error` struct by 4 bytes.
  - Saving it as a zend_string means we know the length of the message
- Remove the need to pass around a "function name" `char*` across multiple calls
- Use Intl's exception mechanism to generate exceptions for constructor call
  - This removes the need for replacing the error handler
  - Which didn't do anything anyway in silent mode, which required throwing non-descriptive exceptions
* PHP-8.3:
  Prevent operands from being released during comparison
* PHP-8.4:
  Prevent operands from being released during comparison
We resolve the name mangling issue by including the right header file
inside an `extern "C"` declaration.

Closes GH-19310.
@pull pull bot locked and limited conversation to collaborators Jul 30, 2025
@pull pull bot added the ⤵️ pull label Jul 30, 2025
@pull pull bot merged commit 4754d30 into wudi:master Jul 30, 2025
6 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.

4 participants