ID: 50657 Updated by: il...@php.net Reported By: php at lorddeath dot net -Status: Analyzed +Status: Closed Bug Type: Filesystem function related Operating System: Win32/Linux PHP Version: 5.3SVN-2010-01-04 (snap) New Comment:
This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2010-01-06 12:54:54] s...@php.net Automatic comment from SVN on behalf of iliaa Revision: http://svn.php.net/viewvc/?view=revision&revision=293175 Log: Fixed bug #50657 (copy() with an empty (zero-byte) HTTP source succeeds but returns false). ------------------------------------------------------------------------ [2010-01-04 22:07:08] j...@php.net _php_stream_copy_to_stream_ex() contains the problem, it assumes read length of 0 to be an error.. ------------------------------------------------------------------------ [2010-01-04 21:57:30] j...@php.net Nevermind, the auto-link-thing in this crappy bug tracker messed the url. :) ------------------------------------------------------------------------ [2010-01-04 21:56:47] j...@php.net Was the file always returning 404 ? ------------------------------------------------------------------------ [2010-01-04 15:51:34] php at lorddeath dot net Description: ------------ The copy() function returns false (but otherwise succeeds in copying the file) when the source file is accessed via a HTTP stream, but is empty (zero bytes). Other, non-HTTP, stream types might also be affected, but local files are definitely *NOT* affected. I have successfully reproduced this bug with PHP 5.2.9 on Linux, and 5.2.5, 5.2.12, 5.3.0, 5.3.1 and 5.3.3-dev (2010-Jan-04 15:00:00) on Windows. (I will keep the empty.txt URL in the reproduce code accessible for a while.) Reproduce code: --------------- $r = copy("http://lspace.sihnon.net/pub/empty.txt", "temp"); var_dump($r); Expected result: ---------------- bool(true) Actual result: -------------- bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=50657&edit=1