diff --git a/apps/files_encryption/lib/cryptstream.php b/apps/files_encryption/lib/cryptstream.php index 901e8cccbfb6364544cfd0aab930d6265f7fbe8b..9949c1896a8d3313d49b4c8f932a17bc0028cf00 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 1d22bb34dfc247e97e5cf8d4febc37aae6b82c67..da9baa020a2c5e28b9cb72452c8d1ea70e4262ed 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; }