always set encrypted flag when overwriting a file we should encrypt

This commit is contained in:
Robin Appelman 2012-02-26 15:32:45 +01:00
parent d4d09b06f8
commit ff0a542e48
1 changed files with 2 additions and 1 deletions

View File

@ -66,6 +66,7 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
if(self::shouldEncrypt($path)){ if(self::shouldEncrypt($path)){
if (!is_resource($data)) {//stream put contents should have been converter to fopen if (!is_resource($data)) {//stream put contents should have been converter to fopen
$data=OC_Crypt::blockEncrypt($data); $data=OC_Crypt::blockEncrypt($data);
OC_FileCache::put($path,array('encrypted'=>true));
} }
} }
} }
@ -85,7 +86,7 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
if(self::isEncrypted($path)){ if(self::isEncrypted($path)){
fclose($result); fclose($result);
$result=fopen('crypt://'.$path,$meta['mode']); $result=fopen('crypt://'.$path,$meta['mode']);
}elseif(self::shouldEncrypt($path) and $meta['mode']!='r'){ }elseif(self::shouldEncrypt($path) and $meta['mode']!='r' and $meta['mode']!='rb'){
if(OC_Filesystem::file_exists($path) and OC_Filesystem::filesize($path)>0){ if(OC_Filesystem::file_exists($path) and OC_Filesystem::filesize($path)>0){
//first encrypt the target file so we don't end up with a half encrypted file //first encrypt the target file so we don't end up with a half encrypted file
OC_Log::write('files_encryption','Decrypting '.$path.' before writing',OC_Log::DEBUG); OC_Log::write('files_encryption','Decrypting '.$path.' before writing',OC_Log::DEBUG);