ID:               37158
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Analyzed
+Status:           Closed
 Bug Type:         Streams related
 Operating System: n/a
 PHP Version:      5CVS-2006-04-21 (CVS)
 Assigned To:      wez
 New Comment:

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------

[2006-04-22 16:02:23] [EMAIL PROTECTED]

The following patch corrects the issue:
http://y1.php.net/~wez/streams-37158.diff

------------------------------------------------------------------------

[2006-04-22 15:36:43] [EMAIL PROTECTED]

A change was made to wrapper resolution that mean that the plain file
wrapper is effectively aliased at alternate locations in memory.  This
fundamentally breaks the wrapper implementation macros
(PHP_STREAM_IS(...)) which absolutely rely on the wrapper structures
living at the definitive original address in memory.  Other streams
core code also relies on this being the case.

The fix is to change the wrapper hash tables to store pointers to the
wrapper structures instead of having them clone the wrapper
structures.

The reason this problem only triggered when calling
stream_wrapper_register() is that it clones the hash on the first call.
 This coupled with a change that allows scripts to override file://
causes regular plain file access (even without file://) to lookup the
cloned plain file wrapper from the cloned hash. 

------------------------------------------------------------------------

[2006-04-22 14:52:11] [EMAIL PROTECTED]

Your example is incomplete, but there was a comment to help to complete
it, next time, please provide a complete script :)

However, I found the problem, please try:
http://pear.php.net/~pierre/check_stream_plainfile_wops.txt



------------------------------------------------------------------------

[2006-04-22 04:25:13] [EMAIL PROTECTED]

"...or (after opening userspace stream) when 8192 bytes have been read
whichever comes first."

Pierre, I never opened a userspace stream.  A user stream was
registered with stream_wrapper_register(), and never used.  Read the
example code.  The only thing opened was a local file, which is very
much a built-in stream.

This would be equivalent to mysql_query() failing because the code
initialized a pdo object.  The two should not affect each other.

------------------------------------------------------------------------

[2006-04-21 22:40:09] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

"...or (after opening userspace stream) when 8192 bytes have been read
whichever comes first."

I think it is clear. What do you suggest to make it more clear? Reopen
and change it to "documentation" bug if you have a better text.

It is not a bug.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/37158

-- 
Edit this bug report at http://bugs.php.net/?id=37158&edit=1

Reply via email to