#31575 [Opn->Bgs]: fpassthru, binary mode

From: Date: Sun, 16 Jan 2005 20:41:32 +0000
Subject: #31575 [Opn->Bgs]: fpassthru, binary mode
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-72269@lists.php.net to get a copy of this message
ID: 31575 Updated by: tony2001@php.net Reported By: kingoleg at mail dot ru -Status: Open +Status: Bogus Bug Type: Filesystem function related Operating System: Linux version 2.4.20-8,Red Hat PHP Version: 4.3.10 New Comment: No bug -> bogus. Previous Comments: ------------------------------------------------------------------------ [2005-01-16 20:58:39] kingoleg at mail dot ru Sorry. I'm found it. It is not a bug. The output of script was buffered by ob_start(); So header() does not send warning. After I turned off buffering, I find a line out of php section in config file of this soft. With commented fpassthru() it outputs "\n\n". ------------------------------------------------------------------------ [2005-01-16 20:11:45] wez@php.net Comment out the fpassthru() call and look at the page output. ------------------------------------------------------------------------ [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

« previous php.bugs (#72269) next »