From da9107fe699e6e5dfe0df8921484178fee844f4c Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Thu, 21 Jun 2012 18:07:56 +0200
Subject: [PATCH] fix saved file size for uploaded files

---
 apps/files_encryption/lib/cryptstream.php | 8 ++++----
 lib/filecache.php                         | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/apps/files_encryption/lib/cryptstream.php b/apps/files_encryption/lib/cryptstream.php
index 901e8cccbf..9949c1896a 100644
--- a/apps/files_encryption/lib/cryptstream.php
+++ b/apps/files_encryption/lib/cryptstream.php
@@ -115,8 +115,9 @@ class OC_CryptStream{
 			$data=substr($block,0,$currentPos%8192).$data;
 			fseek($this->source,-($currentPos%8192),SEEK_CUR);
 		}
-		while(strlen($data)>0){
-			if(strlen($data)<8192){
+		$currentPos=ftell($this->source);
+		while($remainingLength=strlen($data)>0){
+			if($remainingLength<8192){
 				$this->writeCache=$data;
 				$data='';
 			}else{
@@ -125,8 +126,7 @@ class OC_CryptStream{
 				$data=substr($data,8192);
 			}
 		}
-		$currentPos=ftell($this->source);
-		$this->size=max($this->size,$currentPos);
+		$this->size=max($this->size,$currentPos+$length);
 		return $length;
 	}
 
diff --git a/lib/filecache.php b/lib/filecache.php
index 1d22bb34df..da9baa020a 100644
--- a/lib/filecache.php
+++ b/lib/filecache.php
@@ -91,14 +91,14 @@ class OC_FileCache{
 			$data=array_merge(OC_FileCache::$savedData[$path],$data);
 			unset(OC_FileCache::$savedData[$path]);
 		}
-		if(!isset($data['size']) or !isset($data['mtime'])){//save incomplete data for the next time we write it
-			self::$savedData[$path]=$data;
-			return;
-		}
 		if($id!=-1){
 			self::update($id,$data);
 			return;
 		}
+		if(!isset($data['size']) or !isset($data['mtime'])){//save incomplete data for the next time we write it
+			self::$savedData[$path]=$data;
+			return;
+		}
 		if(!isset($data['encrypted'])){
 			$data['encrypted']=false;
 		}
-- 
GitLab