Skip to content

Segmentation fault in ext/opcache/jit/ir/dynasm/dasm_x86.h #15657

Description

@YuanchengJiang

Description

The following code:

<?php
interface I {
public $prop { &get; }
}
class A implements I {
private $_prop;
public $prop {
&get => $this->_prop;
}
}
?>

Resulted in this output:

==3084612==ERROR: AddressSanitizer: SEGV on unknown address 0x7f698aba28e0 (pc 0x7f69cb530ca7 bp 0x7ffe155476d0 sp 0x7ffe15546cc0 T0)
==3084612==The signal is caused by a WRITE memory access.
LLVMSymbolizer: error reading file: No such file or directory
    #0 0x7f69cb530ca7 in dasm_encode /php-src/ext/opcache/jit/ir/dynasm/dasm_x86.h:415:10
    #1 0x7f69cb55bffc in ir_emit_code /php-src/ext/opcache/jit/ir/ir_x86.dasc:10804:8
    #2 0x7f69cbeea810 in zend_jit_ir_compile /php-src/ext/opcache/jit/zend_jit_ir.c:2830:10
    #3 0x7f69cbdc763d in zend_jit_finish /php-src/ext/opcache/jit/zend_jit_ir.c:16106:10
    #4 0x7f69cbac30c2 in zend_jit /php-src/ext/opcache/jit/zend_jit.c:2731:12
    #5 0x7f69cba27c9a in zend_real_jit_func /php-src/ext/opcache/jit/zend_jit.c:2838:6
    #6 0x7f69cba59ac7 in zend_jit_op_array /php-src/ext/opcache/jit/zend_jit.c:3119:10
    #7 0x7f69cb3ec8ab in zend_persist_property_info /php-src/ext/opcache/zend_persist.c:825:7
    #8 0x7f69cb3b4d34 in zend_persist_class_entry /php-src/ext/opcache/zend_persist.c:975:21
    #9 0x7f69cb464379 in zend_accel_inheritance_cache_add /php-src/ext/opcache/ZendAccelerator.c:2431:23
    #10 0x56503dd69a59 in zend_do_link_class /php-src/Zend/zend_inheritance.c:3650:12
    #11 0x56503d3ccd91 in zend_bind_class_in_slot /php-src/Zend/zend_compile.c:1332:7
    #12 0x56503d3cd944 in do_bind_class /php-src/Zend/zend_compile.c:1366:9
    #13 0x56503da42d0d in ZEND_DECLARE_CLASS_SPEC_CONST_HANDLER /php-src/Zend/zend_vm_execute.h:5714:2
    #14 0x7f698aba289f  (/dev/zero (deleted)+0x800089f)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /php-src/ext/opcache/jit/ir/dynasm/dasm_x86.h:415:10 in dasm_encode

To reproduce:

opcache.preload_user=php
implicit_flush=0
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=1024M
opcache.jit=1101

PHP Version

PHP 8.4.0-dev

Operating System

ubuntu 22.04

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions