diff --git a/NEWS b/NEWS index 19ee69d861a..6a1588b4f8e 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,10 @@ PHP NEWS . Fixed bug #72711 (`mb_ereg` does not clear the `$regs` parameter on failure). (ju1ius) +- Opcache: + . Fixed bug #72762 (Infinite loop while parsing a file with opcache enabled). + (Nikita) + - Stream: . Fixed bug #72743 (Out-of-bound read in php_stream_filter_create). (Loianhtuan) diff --git a/ext/opcache/Optimizer/zend_inference.c b/ext/opcache/Optimizer/zend_inference.c index c8dd1004d7a..20f2ae37dbe 100644 --- a/ext/opcache/Optimizer/zend_inference.c +++ b/ext/opcache/Optimizer/zend_inference.c @@ -3139,9 +3139,6 @@ static void zend_update_type_info(const zend_op_array *op_array, if (t1 & MAY_BE_ARRAY_KEY_STRING) { tmp |= MAY_BE_STRING; } - if (!(tmp & (MAY_BE_LONG|MAY_BE_STRING))) { - tmp |= MAY_BE_NULL; - } } UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def); } diff --git a/ext/opcache/tests/bug72762.phpt b/ext/opcache/tests/bug72762.phpt new file mode 100644 index 00000000000..8ce98bf438a --- /dev/null +++ b/ext/opcache/tests/bug72762.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #72762: Infinite loop while parsing a file with opcache enabled +--FILE-- + $v) { + } + $b[$k] = $v; + } + } +} + +?> +===DONE=== +--EXPECT-- +===DONE===