History log of /PHP-8.4/ext/opcache/tests/jit/gh15657.phpt (Results 1 – 1 of 1)
Revision Date Author Comments
# 3665ab01 09-Sep-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-15657: Segmentation fault in ext/opcache/jit/ir/dynasm/dasm_x86.h

The crash happens because the zend_persist.c code tries to JIT the hook's
op_array while the JIT buffer memory is

Fix GH-15657: Segmentation fault in ext/opcache/jit/ir/dynasm/dasm_x86.h

The crash happens because the zend_persist.c code tries to JIT the hook's
op_array while the JIT buffer memory is still protected. This happens in
`zend_persist_property_info` called via `zend_persist_class_entry`
through the inheritance cache.

We shouldn't JIT the property hook code when persisting property info
for the inheritance cache.

This is a simple workaround by temporarily disabling the JIT so that the
property hook code is not JITted when persisting the property info.

An alternative solution would be to move the JITting of the property
hooks to a different place in zend_persist.c by doing an additional pass
over the classes.

Closes GH-15819.

show more ...