|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #40047 stream_eof() return code ignored
Submitted: 2007-01-07 13:01 UTC Modified: 2007-01-20 16:50 UTC
From: alex at kiesel dot name Assigned:
Status: Not a bug Package: Streams related
PHP Version: 5.2.0 OS: Gentoo Linux
Private report: No CVE-ID: None
 [2007-01-07 13:01 UTC] alex at kiesel dot name
When reading through a stream wrapper, the method stream_eof() is called, but it's result is discarded and ignored.
This leads to an obsolete call to stream_read().

Reproduce code:

Expected result:
string(11) "stream_stat"
string(43) "stream_read(8192) / 80 / returning 80 bytes"
string(14) "stream_eof(): "

Actual result:
string(11) "stream_stat"
string(43) "stream_read(8192) / 80 / returning 80 bytes"
string(14) "stream_eof(): "
string(42) "stream_read(8192) / 80 / returning 0 bytes"
string(14) "stream_eof(): "


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2007-01-07 18:21 UTC]
The return value of the function is most definitely not 
ignored. The internal streams IO requires the additional read, 
hence the 2nd call.
 [2007-01-15 17:35 UTC] alex at kiesel dot name
Sorry, it really doesn't matter what stream_eof() returns; subsequent calls to stream_read() are being done regardless of its return value.

Removing the function isn't possible as it is a required stream function. Due to performance reasons, one might want to save those calls to stream_eof() (or the last stream_read() call), though.
 [2007-01-20 16:50 UTC]
It is not possible to eliminate those read calls, sorry.
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Jul 23 05:01:29 2024 UTC