Annotation of embedaddon/php/Zend/tests/bug38779_1.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)
! 3: --FILE--
! 4: <?php
! 5:
! 6: class 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_flush() {
! 23: @unlink(dirname(__FILE__)."/bug38779.txt");
! 24: var_dump("flush!");
! 25: }
! 26: function stream_close() {
! 27: var_dump("close!");
! 28: }
! 29: }
! 30: stream_wrapper_register('Loader', 'Loader');
! 31: $fp = fopen ('Loader://qqq.php', 'r');
! 32:
! 33: $filename = dirname(__FILE__)."/bug38779.txt";
! 34: $fp1 = fopen($filename, "w");
! 35: fwrite($fp1, "<"."?php blah blah?".">");
! 36: fclose($fp1);
! 37:
! 38: include $filename;
! 39:
! 40: echo "Done\n";
! 41: ?>
! 42: --EXPECTF--
! 43: Parse error: %s error%sin %s on line %d
! 44: string(6) "flush!"
! 45: string(6) "close!"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>