You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Warning: Undefined variable $b in Standard input code on line 3
Deprecated: preg_replace_callback_array(): Passing null to parameter #3 ($limit) of type int is deprecated in Standard input code on line 3
Segmentation fault (core dumped)
But I expected something like this output instead (I am not sure about the null values. At the very least I would not expect a segmentation fault.):
[rocky@fuzz php-src]$ cat <<'EOF' | ~/php-src/sapi/cli/php
<?php
$a = [];
$a = preg_replace_callback_array($a,$a,null,null)
?>
EOF
Fatal error: Uncaught Error: preg_replace_callback_array(): Argument #4 ($count) cannot be passed by reference in Standard input code:3
Stack trace:
#0 {main}
thrown in Standard input code on line 3
So far, the ZVAL_ARR macro always set the zval type_info to IS_ARRAY_EX, even
if the hash table was immutable. If a constant array is passed to
preg_replace_callback_array() it would be returned with incorrect type_flags,
causing the engine to do ref-counting on the constant array.
FixesphpGH-10968
iluuu1994
added a commit
to iluuu1994/php-src
that referenced
this issue
Mar 29, 2023
…mutable arrays
The ZVAL_ARR macro always set the zval type_info to IS_ARRAY_EX, even if the
hash table is immutable. Since in preg_replace_callback_array() we can return
the passed array directly, and that passed array can be immutable, we can copy
the array to circumvent the problem.
FixesphpGH-10968
iluuu1994
added a commit
to iluuu1994/php-src
that referenced
this issue
Mar 29, 2023
…mutable arrays
The ZVAL_ARR macro always set the zval type_info to IS_ARRAY_EX, even if the
hash table is immutable. Since in preg_replace_callback_array() we can return
the passed array directly, and that passed array can be immutable, we need to
reset the type_flags to keep the VM from performing ref-counting on the array.
FixesphpGH-10968
Description
The following code:
Resulted in this output:
But I expected something like this output instead (I am not sure about the null values. At the very least I would not expect a segmentation fault.):
How to compile:
PHP Version
php-8.2.4RC1
Operating System
Rocky Linux release 9.1 (Blue Onyx)
The text was updated successfully, but these errors were encountered: