![]() |
sponsored links |
|
|
sponsored links
|
|
|
2
27th May 07:58
External User
Posts: 1
|
ID: 36677
Updated by: mike@php.net Reported By: ringu at mail dot ru -Status: Open +Status: Bogus -Bug Type: Scripting Engine problem +Bug Type: Streams related Operating System: CentOS 4.2, Mandriva Linux 2006 PHP Version: 5.1.2 New Comment: Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Thank you for your interest in PHP. Similar to #36320 Previous Comments: ------------------------------------------------------------------------ [2006-03-10 11:42:27] ringu at mail dot ru Description: ------------ I tried to register my stream wrapper to use it in include. Everything was OK until i have not parse error in code that i tried to include. stream_wrapper_register cause Apache 1.3 segmentation fault. Reproduce code: --------------- class StrangeEval { var $position; var $codeBit; function stream_open($path, $mode, $options, &$opened_path) { $url = parse_url($path); $this->codeBit = $url["host"]; $this->position = 0; return true; } function stream_read($count) { $ret = substr($GLOBALS[$this->codeBit], $this->position, $count); $this->position += strlen($ret); return $ret; } function stream_eof() { return $this->position >= strlen($GLOBALS[$this->codeBit]); } function stream_write($data) { return 0; } function stream_tell() { return $this->position; } function stream_seek($offset, $whence) { switch ($whence) { case SEEK_SET: if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) { $this->position = $offset; return true; } else { return false; } break; case SEEK_CUR: if ($offset >= 0) { $this->position += $offset; return true; } else { return false; } break; case SEEK_END: if (strlen($GLOBALS[$this->varname]) + $offset >= 0) { $this->position = strlen($GLOBALS[$this->varname]) + $offset; return true; } else { return false; } break; default: return false; } } } $test="dfgsdfg<?php require 'Hello world'_; echo \$user['jjj']; ?>"; stream_wrapper_register('seval', 'StrangeEval'); include 'seval://test'; Expected result: ---------------- Error message like this: "Parse error in line 1 of seval://test" Actual result: -------------- Apache segmentation fault ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36677&edit=1 |
|
|