#45759 [NEW]: feof(FALSE) should return TRUE

[email protected] ("stuff at axxess dot co dot za")
Newsgroups php.bugs
Message-ID <[email protected]>
From:             stuff at axxess dot co dot za
Operating system: Linux
PHP version:      5.2.6
PHP Bug Type:     Filesystem function related
Bug description:  feof(FALSE) should return TRUE

Description:
------------
feof(bad_fd) returns FALSE, which indicates that the file descriptor 
has more data.  This is wrong in *every* case.  It should return 
TRUE (no more data), or throw a fatal error.  More than a few sloppy 
fools fail to test the result of fopen(), and blow your bandwidth 
cap and/or hosting budget for a year by serving warnings when your 
RSS source changes their DNS name. 

Reproduce code:
---------------
<?php
$f = fopen ("http://dns.err/foo.html","r");  # ie. $f=FALSE
while (!feof ($f)) {                         # ie. !feof(FALSE)
  $verse .= fgets($f, 4096);
}
fclose ($f);
echo "DONE";


Expected result:
----------------
Warning: fopen(): php_network_getaddresses: getaddrinfo failed: Name 
or service not known in /home/andrewm/x.php on line 2

Warning: fopen(http://dns.err/foo.html): failed to open stream: No 
such file or directory in /home/andrewm/x.php on line 2

Warning: feof(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 3
DONE

Actual result:
--------------
Warning: fopen(): php_network_getaddresses: getaddrinfo failed: Name 
or service not known in /home/andrewm/x.php on line 2

Warning: fopen(http://dns.err/foo.html): failed to open stream: No 
such file or directory in /home/andrewm/x.php on line 2

Warning: feof(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 3

Warning: fgets(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 4

Warning: feof(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 3

Warning: fgets(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 4

Warning: feof(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 3

Warning: fgets(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 4

Warning: feof(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 3

Warning: fgets(): supplied argument is not a valid stream resource 
in /home/andrewm/x.php on line 4

(warnings continue ad-infinitum)

-- 
Edit bug report at http://bugs.php.net/?id=45759&edit=1
-- 
Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=45759&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=45759&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=45759&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=45759&r=fixedcvs
Fixed in release:             http://bugs.php.net/fix.php?id=45759&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=45759&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=45759&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=45759&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=45759&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=45759&r=notwrong
Not enough info:              http://bugs.php.net/fix.php?id=45759&r=notenoughinfo
Submitted twice:              http://bugs.php.net/fix.php?id=45759&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=45759&r=globals
PHP 4 support discontinued:   http://bugs.php.net/fix.php?id=45759&r=php4
Daylight Savings:             http://bugs.php.net/fix.php?id=45759&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=45759&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=45759&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=45759&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=45759&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=45759&r=mysqlcfg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.