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

 ID:                 53903
 Updated by:         cataphr...@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] cataphr...@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

Reply via email to