From:             lorenz dot werner at michel-consulting dot de
Operating system: gentoo
PHP version:      5.2.10
PHP Bug Type:     Unknown/Other Function
Bug description:  File is missing 2048 bytes after fclose. When script ends the 
file is complete 

Description:
------------
Since I upgraded to PHP 5.2.10 I have got an problem with files not beiing
completly written. Exactly 2048 bytes are missing while the script is
running. Even after fclose it is not completley written.

If I open the file for reading again and then close it again the file is
complete. But that can't be correct... or is it?

Reproduce code:
---------------
$fh = fopen($pdf_tarfile, "wb");
$ch = curl_init(PDF_SERVICE_URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_exec($ch);
$return_code = curl_errno($ch);
if( $return_code ) {
        trigger_error('curl returned error ' . $return_code . ': ' .
curl_error($ch), E_USER_ERROR);
        return false;
}
curl_close($ch);
fclose($fh);

// It only works with this workaround
{
        $fh = fopen($pdf_tarfile, "rb");
        fclose($fh);
}

$cmd = 'tar'
. ' -x' // extract
. ' -f ' . escapeshellarg($pdf_tarfile) // this file
. ' -C ' . escapeshellarg($path); // into this directory

$stdout = array();
exec($cmd . ' 2>&1', $stdout, $return_code);
if ($return_code) {
        trigger_error('tar returned error ' . $return_code . ': ' . 
implode("\n",
$stdout), E_USER_ERROR);
        return false;
}


Expected result:
----------------
Correctly unpacked tar archive.

Actual result:
--------------
Tar fails to unpack the file because it is missing the last 2048 Bytes.

If I run the command manually after the script is finished, the file can
be unpacked without any problem at all.

-- 
Edit bug report at http://bugs.php.net/?id=48870&edit=1
-- 
Try a CVS snapshot (PHP 5.2):        
http://bugs.php.net/fix.php?id=48870&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):        
http://bugs.php.net/fix.php?id=48870&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):        
http://bugs.php.net/fix.php?id=48870&r=trysnapshot60
Fixed in CVS:                        
http://bugs.php.net/fix.php?id=48870&r=fixedcvs
Fixed in CVS and need be documented: 
http://bugs.php.net/fix.php?id=48870&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=48870&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=48870&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=48870&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=48870&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=48870&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=48870&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=48870&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=48870&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=48870&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=48870&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=48870&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=48870&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=48870&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=48870&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=48870&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=48870&r=mysqlcfg

Reply via email to