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

View file

@ -66,6 +66,7 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
if(self::shouldEncrypt($path)){
if (!is_resource($data)) {//stream put contents should have been converter to fopen
$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)){
fclose($result);
$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){
//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);