mirror of
https://github.com/php/php-src.git
synced 2026-03-24 16:22:37 +01:00
When the superglobals are eagerly initialized, but "S" is not contained in `variables_order`, `TRACK_VARS_SERVER` is created as empty array with refcount > 1. Since this hash table may later be modified, a flag is set which allows such COW violations for assertions. However, when `register_argc_argv` is on, the so far uninitialized hash table is updated with `argv`, what causes the hash table to be initialized, what drops the allow-COW-violations flag. The following update with `argc` then triggers a refcount violation assertion. Since we consider `HT_ALLOW_COW_VIOLATION` a hack, we do not want to keep the flag during hash table initialization, so we initialize the hash table right away after creation for this code path. Closes GH-15930.
13 lines
175 B
PHP
13 lines
175 B
PHP
--TEST--
|
|
GH-15905 (Assertion failure for TRACK_VARS_SERVER)
|
|
--INI--
|
|
variables_order=E
|
|
auto_globals_jit=0
|
|
register_argc_argv=1
|
|
--FILE--
|
|
<?php
|
|
echo "okay\n";
|
|
?>
|
|
--EXPECT--
|
|
okay
|