Bug #61665 [Com]: include on stream wrapper results in wsod
| From: | pollita@php.net | Date: | Thu, 28 Jun 2012 00:56:28 +0000 |
| Subject: | Bug #61665 [Com]: include on stream wrapper results in wsod | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-171593@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=61665&edit=1
ID: 61665
Comment by: pollita@php.net
Reported by: btmash at gmail dot com
Summary: include on stream wrapper results in wsod
Status: Open
Type: Bug
Package: Streams related
Operating System: Ubuntu 10.04
PHP Version: 5.3.10
Block user comment: N
Private report: N
New Comment:
Hi, could you paste the wrapper code again? That link is invalid (the content
hosting site went down). Thanks!
Previous Comments:
------------------------------------------------------------------------
[2012-04-19 08:08:15] btmash at gmail dot com
I'm setting it back to open since I've provided feedback.
------------------------------------------------------------------------
[2012-04-09 23:29:13] btmash at gmail dot com
I've pasted a version of the class at http://paste.pocoo.org/show/578721/ since it is
longer than 20 lines.
Please note that a large chunk of this is the drupal stream wrapper interface and at the bottom is
the stream class that I implemented 'MyLocalStreamWrapper' which returns back the
directory it is currently in. I perform an include to a info.php file which consists of:
"
<?php
phpinfo();
"
I tested this out on PHP 5.3.8 and it worked. When I tested this on 5.3.10, it failed.
------------------------------------------------------------------------
[2012-04-09 22:12:44] cataphract@php.net
Please include the code of the stream wrapper, otherwise we can't reproduce this problem. In
particular, the implementation of stream_open would be very important (but please include
everything).
------------------------------------------------------------------------
[2012-04-08 09:56:51] btmash at gmail dot com
Description:
------------
Hi,
I am currently running a drupal website using a module (http://drupal.org/project/configuration)
that provided its own contributed stream wrapper to find the local configuration directory (so it
was in the format 'config://path/to/file' - the implementation can be seen at http://drupalcode.org/project/configuration.git/blob/refs/heads/7.x-1.x:/configuration_stream.inc).
On my local environment of running the site with the module (which runs php 5.3.6), the
configuration would be able to scan on files with the protocol without any issues.
However, once I moved to my staging environment which runs php 5.3.10, I would end up with a wsod.
The strange part was that the page returned a code 200 and nothing in the error log. I made sure
that allow_url_fopen was enabled and the protocols actually registered so it should have worked
correctly. Moreover, using file_exists and is_file work to ensure the file exists so that meant the
file was being found the first time around.
For now, my workaround has been to use drupal's functions to get the stream converted correctly
(see http://drupal.org/files/config-stream.patch
as my workaround for the module to work) but problem seems to stem from PHP which is why I am filing
my issue here. Any help that can be provided would be greatly appreciated.
Test script:
---------------
Implement a simple stream wrapper to a file in local (lets call it local).
Create a php file to include from somewhere (called test_include.inc).
Have the line 'include local://path/to/test_include.inc'.
Expected result:
----------------
It should result in a code 200 but also a wsod.
Actual result:
--------------
The script should be correctly included.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61665&edit=1