[pull] master from php:master - #1036
Merged
Merged
Conversation
exit_info.op_array was taken from the current frame. Methods of linked classes that miss the inheritance cache use a heap copy of the op_array header, so that pointer is invalid in other processes and later requests. Store the original from the JIT extension, as root traces already do. Closes GH-21710
…3052) This effectively mimics part of what Fast ZPP does and allows us to re-use the fast ZPP error APIs
* PHP-8.4: JIT: persist the SHM op_array in trace exit_info
* PHP-8.5: JIT: persist the SHM op_array in trace exit_info
…TERNALS (#23434) zend_create_closure(), zend_create_fake_closure() and zend_create_partial_closure() take a zend_object* since fbb2e1f, and zend_get_closure_this_ptr() returns one since 7a5e452. Neither change was listed, so extensions built against the new headers get only a -Wincompatible-pointer-types warning and read garbage at runtime.
…at codes (#21074) RFC (integer format codes): https://wiki.php.net/rfc/pack-unpack-endianness-signed-integers-support RFC (float format codes): https://wiki.php.net/rfc/pack-unpack-float-endianness-modifier
We conveniently use the function's scope for the scope of the generated closure as this allows const exprs referencing self:: or parent:: to behave normally. However this affects method resolution for magic methods. Fix by using the actual scope for PFAs of magic methods.
sapi_cli_server_send_headers() sent the header buffer through php_cli_server_client_send_through() but dropped the return value, so it always reported SAPI_HEADER_SENT_SUCCESSFULLY, even when the send failed and php_handle_aborted_connection() did not bail out (ignore_user_abort=1). It now compares the send result against the buffer length and returns SAPI_HEADER_SEND_FAILED when it comes up short. php_cli_server_client_send_through() itself returned the number of bytes left on failure, which equals str_len when nothing was sent: the same value it returns on success. It now returns the number of bytes actually sent on both paths. Since sapi_send_headers() resets headers_sent on SAPI_HEADER_SEND_FAILED, a headers_written flag on the client guards against rebuilding and resending the whole header block on every subsequent output write. Close GH-23428
* PHP-8.4: sapi/cli: check php_cli_server_client_send_through() return value
* PHP-8.5: sapi/cli: check php_cli_server_client_send_through() return value
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )