From 4c957e0bbab561a04200b834ee5ed19ba54417b6 Mon Sep 17 00:00:00 2001 From: svollbehr Date: Thu, 29 Mar 2012 19:53:29 +0000 Subject: [PATCH] Apply patch to fix premature write end git-svn-id: http://php-reader.googlecode.com/svn/trunk@272 51a70ab9-7547-0410-9469-37e369ee0574 --- src/Zend/Media/Asf.php | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Zend/Media/Asf.php b/src/Zend/Media/Asf.php index 38550a6..b538adc 100644 --- a/src/Zend/Media/Asf.php +++ b/src/Zend/Media/Asf.php @@ -40,7 +40,8 @@ require_once 'Zend/Media/Asf/Object/Container.php'; * @package Zend_Media * @subpackage ASF * @author Sven Vollbehr - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @author Elias Haapamäki + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id$ */ @@ -198,12 +199,19 @@ class Zend_Media_Asf extends Zend_Media_Asf_Object_Container ftruncate ($fd, $newFileSize = $headerLengthNew - $headerLengthOld + $oldFileSize); - for ($i = 1, $cur = $oldFileSize; $cur > 0; $cur -= 1024, $i++) { - fseek($fd, -(($i * 1024) + - ($newFileSize - $oldFileSize)), SEEK_END); - $buffer = fread($fd, 1024); - fseek($fd, -($i * 1024), SEEK_END); - fwrite($fd, $buffer, 1024); + for ($i = 1, $cur = $oldFileSize; $cur > 0; $cur -= 1024, $i++) { + if ($cur >= 1024) { + fseek($fd, -(($i * 1024) + + ($newFileSize - $oldFileSize)), SEEK_END); + $buffer = fread($fd, 1024); + fseek($fd, -($i * 1024), SEEK_END); + fwrite($fd, $buffer, 1024); + } else { + fseek($fd, 0); + $buffer = fread($fd, $cur); + fseek($fd, $newFileSize - $oldFileSize); + fwrite($fd, $buffer, $cur); + } } }