Skip to content

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

Closed
@YuanchengJiang

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions