1--TEST-- 2Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper) 3--FILE-- 4<?php 5 6class Loader { 7 private $position; 8 private $data; 9 public function stream_open($path, $mode, $options, &$opened_path) { 10 $this->data = '<' . "?php \n\"\";ll l\n ?" . '>'; 11 $this->position = 0; 12 return true; 13 } 14 function stream_read($count) { 15 $ret = substr($this->data, $this->position, $count); 16 $this->position += strlen($ret); 17 return $ret; 18 } 19 function stream_eof() { 20 return $this->position >= strlen($this->data); 21 } 22 function stream_stat() { 23 return array('size' => strlen($this->data)); 24 } 25 function stream_set_option($option, $arg1, $arg2) { 26 return false; 27 } 28} 29stream_wrapper_register('Loader', 'Loader'); 30require 'Loader://qqq.php'; 31 32echo "Done\n"; 33?> 34--EXPECTF-- 35Parse error: %s error%sin Loader://qqq.php on line %d 36