diff --git a/ext/opcache/jit/zend_jit_arm64.dasc b/ext/opcache/jit/zend_jit_arm64.dasc index 4f78e2e3806..7b403708303 100644 --- a/ext/opcache/jit/zend_jit_arm64.dasc +++ b/ext/opcache/jit/zend_jit_arm64.dasc @@ -5737,7 +5737,7 @@ static int zend_jit_assign_to_typed_ref(dasm_State **Dst, | // if (UNEXPECTED(EG(exception) != NULL)) { | MEM_LOAD_64_ZTS ldr, REG0, executor_globals, exception, TMP1 | cbz REG0, >8 // END OF zend_jit_assign_to_variable() - | b ->exception_handler_undef + | b ->exception_handler } else { | b >8 } diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index e2613f96db2..04dd5c0c7fd 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -6256,7 +6256,7 @@ static int zend_jit_assign_to_typed_ref(dasm_State **Dst, | // if (UNEXPECTED(EG(exception) != NULL)) { | MEM_CMP_ZTS aword, executor_globals, exception, 0, r0 | je >8 // END OF zend_jit_assign_to_variable() - | jmp ->exception_handler_undef + | jmp ->exception_handler } else { | jmp >8 } diff --git a/ext/opcache/tests/jit/assign_053.phpt b/ext/opcache/tests/jit/assign_053.phpt new file mode 100644 index 00000000000..6e785fa76f7 --- /dev/null +++ b/ext/opcache/tests/jit/assign_053.phpt @@ -0,0 +1,26 @@ +--TEST-- +JIT ASSIGN: memory leak +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +opcache.protect_memory=1 +--FILE-- +x = " $y "; +$r = &$test->x + ($r = $y); +?> +--EXPECTF-- +Warning: Undefined variable $y in %sassign_053.php on line 6 + +Warning: Undefined variable $y in %sassign_053.php on line 7 + +Fatal error: Uncaught TypeError: Cannot assign null to reference held by property Test::$x of type string in %sassign_053.php:7 +Stack trace: +#0 {main} + thrown in %sassign_053.php on line 7 \ No newline at end of file