summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2021-02-22 09:37:51 +0100
committerNikita Popov <nikita.ppv@gmail.com>2021-02-22 09:38:34 +0100
commited4f90f0c7ba205defcbdd0079b14d883354eaa2 (patch)
treef961e2a4718d8821d5d199161453ba3ba4dbad62
parent85ffe8dcdc2fe39e06037e382e012674ee051e1e (diff)
parent6dd85f83f78fbafc4a90b264e577a31b59323314 (diff)
downloadphp-git-ed4f90f0c7ba205defcbdd0079b14d883354eaa2.tar.gz
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4: Fixed bug #80781
-rw-r--r--Zend/tests/bug80781.phpt31
1 files changed, 31 insertions, 0 deletions
diff --git a/Zend/tests/bug80781.phpt b/Zend/tests/bug80781.phpt
new file mode 100644
index 0000000000..eb5109add9
--- /dev/null
+++ b/Zend/tests/bug80781.phpt
@@ -0,0 +1,31 @@
+--TEST--
+Bug #80781: Error handler that throws ErrorException infinite loop
+--FILE--
+<?php
+
+function handle(int $severity, string $message, string $file, int $line): bool {
+ if((error_reporting() & $severity) !== 0) {
+ throw new \ErrorException($message, 0, $severity, $file, $line);
+ }
+
+ return true; // stfu operator
+}
+
+set_error_handler('handle');
+
+function getPlugin(string $plugin) : bool{
+ return false;
+}
+
+$data = [];
+$array = [];
+if (isset($array[$data]) or getPlugin($data)) {
+
+}
+
+?>
+--EXPECTF--
+Fatal error: Uncaught TypeError: Illegal offset type in isset or empty in %s:%d
+Stack trace:
+#0 {main}
+ thrown in %s on line %d