* Fix GH-13834: Applying non-zero offset 36 to null pointer in zend_jit.c
ssa_op can be NULL in function JIT. Doing pointer arithmetic on a NULL
pointer is undefined behaviour. Undefined behaviour can be dangerous
because the optimizer may assume then that the variable is not actually
NULL.
To solve this:
1. Add ADVANCE_SSA_OP() to safely add an offset to ssa_op in zend_jit.c
2. For inference, add an extra offset argument to the helper functions.
To reproduce this, use Clang (not GCC) on a test like
sapi/cli/tests/gh12363.phpt (or other tests also work).
* Remove -fno-sanitize=pointer-overflow flag from CI
* Fix NULL pointer offsets added to the stack_map
* Fix an offset add on a potentially NULL ssa->ops
* Fix NULL pointer arithmetic in zend_range_info()
* Address review comments
The test contained a syntax error and an incorrect use of loadExtension(), which returns void not bool.
Also install the necessary package in CI, so it gets tested there.
In the same time, let's not verify implementation aliases since they may now legitimately differ from their aliased function/method counterparts (think about the ext/dom refactoring where e.g. many return type declarations have changed). Additionally, unnecessary `@no-verify` tags are cleaned up.
GitHub at the time of this writing, requires CODEOWNERS file to be
present in each branch for the pull request reviews. This adds adjusted
CODEOWNERS file from current master branch with updated requests and
changes in PHP-8.3 branch.
Closes GH-13623
The CODEOWNERS file is specific to GitHub interface and can be located
in .github, docs or in project root. It makes the php-src root directory
a bit more browseable.
Note 16 is now EOL, so old GitHub Actions that use node 16 now triggers a warning.
This updates all existing workflows except `dwieeb/needs-reply` to their latest versions.
Creating PRs against forks requries having up-to-date target branches. Pushing
to these currently triggers CI, which is useless as this commit was already
tested upstream. Contributions are tested via pull request.
* Add macos-14 to the push workflow
* Remove hardcoded brew path in configure-macos action
* Include architecture in macos job name
* Add os to ccache-action in macos job
* Add libsodium in brew action
Since we build with the configuration option --with-sodium, adding libsodium to make sure it is installed
* Add fail-fast to macos matrix
* Add macos-14 to the nightly workflow
* Fix adding bison to PATH in workflows
* Fix architecture
* Use version to compare in nightly_matrix.php
* Make sure test-macos artifacts have unique name
* Update .github/nightly_matrix.php
Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
---------
Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
Keep this up to date in all non-security-only branches, because the node.js
runtime for older versions might get deprecated in the future and fixing this
for all branches at once is easier.