filesize() returns wrong result after copy
| Bug #65701 | filesize() returns wrong result after copy | ||||
|---|---|---|---|---|---|
| Submitted: | 2013-09-18 17:51 UTC | Modified: | 2014-04-14 02:23 UTC | ||
| From: | flack at contentcontrol-berlin dot de | Assigned: | |||
| Status: | Closed | Package: | *General Issues | ||
| PHP Version: | 5.5.3 | OS: | Ubuntu Linux | ||
| Private report: | No | CVE-ID: | None | ||
[2013-09-18 17:51 UTC] flack at contentcontrol-berlin dot de
Description:
------------
See the script below. The expected output is
int(4)
instead, I get
int(0)
I tested on the Ubuntu packages for php 5.3.10, 5.4.4 and 5.5.3.
When I use
file_put_contents($src, $dst)
instead of copy(), it works as expected. Also, when I use fopen() and stream_copy_to_stream(). Only the plain copy() function doesn't behave as expected. Everything is on the same hard disk and was tested on three different machines (Ubuntu 12.04, 13.04 and Debian 7).
Test script:
---------------
$src = '/tmp/file.txt';
touch ($src);
file_put_contents($src, 'test');
$dst = tempnam('/tmp', 'dst');
copy($src, $dst);
var_dump(filesize($dst));
Expected result:
----------------
int(4)
Actual result:
--------------
int(0)
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2013-09-18 17:53 UTC] flack at contentcontrol-berlin dot de
[2013-09-18 17:54 UTC] flack at contentcontrol-berlin dot de
[2013-10-10 02:52 UTC] haoustc at gmail dot com
[2013-10-12 00:31 UTC] flack at contentcontrol-berlin dot de
[2014-04-14 02:23 UTC] stas@php.net
-Summary: copy() doesn't work when destination filename is created by tempnam() +Summary: filesize() returns wrong result after copy
[2014-04-20 22:28 UTC] stas@php.net
-Status: Open +Status: Closed