Bug #53903 [Asn->Csd]: streamwrapper/stream_stat causes problems
Edit report at http://bugs.php.net/bug.php?id=53903&edit=1
ID: 53903
Updated by: cataphract@php.net
Reported by: acid at rizzt dot kicks-ass dot org
Summary: streamwrapper/stream_stat causes problems
-Status: Assigned
+Status: Closed
Type: Bug
Package: Streams related
Operating System: linux
PHP Version: 5.3.5
Assigned To: cataphract
Block user comment: N
Private report: N
New Comment:
Fixed in trunk and 5.3.
Previous Comments:
------------------------------------------------------------------------
[2011-02-01 23:55:19] cataphract@php.net
Automatic comment from SVN on behalf of cataphract
Revision: http://svn.php.net/viewvc/?view=revision&revision=307934
Log: - Fixed bug #53903 (userspace stream stat callback does not
separate the
elements of the returned array before converting them).
------------------------------------------------------------------------
[2011-02-01 20:24:02] acid at rizzt dot kicks-ass dot org
Here is an entire script:
# php x.php
Warning: Cannot use a scalar value as an array in x.php on line 30
<?php
class sw {
public function stream_open($path, $mode, $options, &$opened_path)
{
return true;
}
public function stream_read($count) {
return FALSE;
}
public function stream_eof() {
return true;
}
public function stream_stat() {
return array(
'atime' => $this->undefined,
);
}
}
stream_wrapper_register('sx', 'sw') or die('failed');
file_get_contents('sx://test');
unset($s);
$s[] = 1; // Cannot use a scalar value as an array
print_r($s);
?
------------------------------------------------------------------------
[2011-02-01 15:58:55] acid at rizzt dot kicks-ass dot org
Description:
------------
I experienced odd things testing code that was working with 5.2.19.
It look like reading a file with file_get_contents using a streamwrapper
class
destroys some part of the zend engine. After reading the file all sorts
of odd
problems occur.
I tracked it down to undefined variables returned by stream_stat() in my
stream
wrapper class. Casting the values to an integer fixes it.
Test script:
---------------
class StreamWrapper {
public function stream_stat() {
return array(
'atime' => $this->notset,
'mtime' => $this->notset,
'ctime' => $this->notset,
);
}
}
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53903&edit=1
Thread (5 messages)