summaryrefslogtreecommitdiff
path: root/Zend/tests/bug38779.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/bug38779.phpt')
-rw-r--r--Zend/tests/bug38779.phpt29
1 files changed, 29 insertions, 0 deletions
diff --git a/Zend/tests/bug38779.phpt b/Zend/tests/bug38779.phpt
new file mode 100644
index 000000000..b551767c9
--- /dev/null
+++ b/Zend/tests/bug38779.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)
+--FILE--
+<?php
+
+class Loader {
+ private $position;
+ private $data;
+ public function stream_open($path, $mode, $options, &$opened_path) {
+ $this->data = '<' . "?php \n\"\";ll l\n ?" . '>';
+ $this->position = 0;
+ return true;
+ }
+ function stream_read($count) {
+ $ret = substr($this->data, $this->position, $count);
+ $this->position += strlen($ret);
+ return $ret;
+ }
+ function stream_eof() {
+ return $this->position >= strlen($this->data);
+ }
+}
+stream_wrapper_register('Loader', 'Loader');
+require 'Loader://qqq.php';
+
+echo "Done\n";
+?>
+--EXPECTF--
+Parse error: %s error%sin Loader://qqq.php on line %d