Edit report at https://bugs.php.net/bug.php?id=37096&edit=1
ID: 37096 Updated by: bj...@php.net Reported by: w...@php.net Summary: referencing bug with return value for stream_seek -Status: Open +Status: Bogus Type: Bug Package: Streams related Operating System: * PHP Version: 5CVS-2006-04-16 (CVS) Block user comment: N Private report: N New Comment: Thank you for taking the time to report a problem with PHP. Unfortunately you are not using a current version of PHP -- the problem might already be fixed. Please download a new PHP version from http://www.php.net/downloads.php If you are able to reproduce the bug with one of the latest versions of PHP, please change the PHP version on this bug report to the version you tested and change the status back to "Open". Again, thank you for your continued support of PHP. I can't reproduce this. If you are still able to produce this, please provide a proper full reproduce script Previous Comments: ------------------------------------------------------------------------ [2006-09-16 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2006-09-08 21:04:46] tony2...@php.net Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2006-07-26 09:21:28] tendencies at free dot fr See this bug : http://bugs.php.net/bug.php?id=30157 ------------------------------------------------------------------------ [2006-04-16 02:29:02] w...@php.net Description: ------------ When using user-space streams via stream_wrapper_register(), if you return the value of a property of the object from stream_seek(), it gets mangled. Sounds like a problem with the way that the retval from call_user_function_ex() is disposed. The workaround is to create a temporary value using a trick like this: function stream_seek($offset, $whence) { ... $retval = $this->pos + 0; return $retval; } presumably the rest of the user wrapper code has the same flaw. Reproduce code: --------------- Abbreviated example; my actual test case is too large. Valgrind does not indicate any memory errors, so the problem is likely logical rather than sloppy memory handling. class MyStream { var $this->pos = 0; function stream_tell() { return $this->pos; } function stream_seek($offset, $whence) { return $this->pos; } } Actual result: -------------- Problem manifested for me by converting $this->pos to bool(true), which was then interpreted by the user space wrapper as an invalid return value from stream_tell(), which simply returns $this->pos. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=37096&edit=1