diff options
author | Antony Dovgal <tony2001@php.net> | 2006-09-11 14:13:25 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2006-09-11 14:13:25 +0000 |
commit | 5a9f40a46aa743f1a90503fc7d2fe82b1de3c724 (patch) | |
tree | a019674b8a4e99c95b9bac970258e026ff44423a /Zend/tests/bug38779_1.phpt | |
parent | 65c046b200ef124e327582f50f31a79c77ed27bf (diff) | |
download | php-git-5a9f40a46aa743f1a90503fc7d2fe82b1de3c724.tar.gz |
add tests
Diffstat (limited to 'Zend/tests/bug38779_1.phpt')
-rw-r--r-- | Zend/tests/bug38779_1.phpt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Zend/tests/bug38779_1.phpt b/Zend/tests/bug38779_1.phpt new file mode 100644 index 0000000000..a865323e8e --- /dev/null +++ b/Zend/tests/bug38779_1.phpt @@ -0,0 +1,45 @@ +--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); + } + function stream_flush() { + @unlink(dirname(__FILE__)."/bug38779.txt"); + var_dump("flush!"); + } + function stream_close() { + var_dump("close!"); + } +} +stream_wrapper_register('Loader', 'Loader'); +$fp = fopen ('Loader://qqq.php', 'r'); + +$filename = dirname(__FILE__)."/bug38779.txt"; +$fp1 = fopen($filename, "w"); +fwrite($fp1, "<"."?php blah blah?".">"); +fclose($fp1); + +include $filename; + +echo "Done\n"; +?> +--EXPECTF-- +Parse error: syntax error, unexpected T_STRING in %s on line %d +string(6) "flush!" +string(6) "close!" |