Engine crash when "require" file with syntax error through stream wrapper
| Bug #38779 | Engine crash when "require" file with syntax error through stream wrapper | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2006-09-11 11:17 UTC | Modified: | 2006-09-11 14:30 UTC |
|
||||||
| From: | alexander dot netkachev at gmail dot com | Assigned: | tony2001 (profile) | |||||||
| Status: | Closed | Package: | Streams related | |||||||
| PHP Version: | 5.1.6 | OS: | Windows XP SP2 | |||||||
| Private report: | No | CVE-ID: | None | |||||||
[2006-09-11 11:17 UTC] alexander dot netkachev at gmail dot com
Description:
------------
including or requiring a syntactically incorrect PHP file through stream wrapper generate uncatchable system exception - program crash.
Reproduce code:
---------------
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_once 'Loader://qqq.php';
Expected result:
----------------
Just the "Parse error", not the program crash.
Actual result:
--------------
System exception with the following description:
AppName: php.exe
AppVer: 5.1.6.6
ModName: php5ts.dll
ModVer: 5.1.6.6
Offset: 000ad9cf
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2006-09-11 14:30 UTC] tony2001@php.net