#31575 [Opn->Fbk]: fpassthru, binary mode
| From: | wez@php.net | Date: | Sun, 16 Jan 2005 19:11:46 +0000 |
| Subject: | #31575 [Opn->Fbk]: fpassthru, binary mode | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-72265@lists.php.net to get a copy of this message | ||
ID: 31575
Updated by: wez@php.net
Reported By: kingoleg at mail dot ru
-Status: Open
+Status: Feedback
Bug Type: Filesystem function related
Operating System: Linux version 2.4.20-8,Red Hat
PHP Version: 4.3.10
New Comment:
Comment out the fpassthru() call and look at the page output.
Previous Comments:
------------------------------------------------------------------------
[2005-01-16 20:10:45] kingoleg at mail dot ru
No.
Right before @fpassthru ($f); headers sends. So, it can not be a new
line before fpassthru, otherwise header(""); write error message. But
there is no error messages in error_log, in browset output. And headers
are right.
------------------------------------------------------------------------
[2005-01-16 19:32:28] wez@php.net
You've probably got a newline at the top of your script, before the
<?php, or a trailing newline from some include or auto-prepend file.
------------------------------------------------------------------------
[2005-01-16 18:56:55] kingoleg at mail dot ru
Description:
------------
It seems, that fpassthru() is not binary safe
Reproduce code:
---------------
First 8 bytes of file (PNG image) on disk:
"89 50 4E 47 0D 0A 1A 0A"
<?php
//...
$f = @fopen( $filepath, "rb" );
@fpassthru ($f);
//...die();
?>
Expected result:
----------------
First 8 bytes of saved file via browser:
"89 50 4E 47 0D 0A 1A 0A"
Actual result:
--------------
First 8 bytes of saved file via browser:
"0A 89 50 4E 47 0A 1A 0A"
PS. Other bytes of files are equal.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31575&edit=1