From 6c3efaf26c397eb957081f1d7a3a05286ca8445f Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Wed, 14 Aug 2013 09:44:29 +0200 Subject: [PATCH] throw exception if encryption was disabled but files are still encrypted to prevent the client from syncing unreadable files --- lib/connector/sabre/file.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/connector/sabre/file.php b/lib/connector/sabre/file.php index 06ab73e3e4..61bdcd5e0a 100644 --- a/lib/connector/sabre/file.php +++ b/lib/connector/sabre/file.php @@ -50,6 +50,11 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D throw new \Sabre_DAV_Exception_Forbidden(); } + // throw an exception if encryption was disabled but the files are still encrypted + if (\OC_Util::encryptedFiles()) { + throw new \Sabre_DAV_Exception_ServiceUnavailable(); + } + // mark file as partial while uploading (ignored by the scanner) $partpath = $this->path . '.part'; @@ -89,7 +94,12 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D */ public function get() { - return \OC\Files\Filesystem::fopen($this->path, 'rb'); + //throw execption if encryption is disabled but files are still encrypted + if (\OC_Util::encryptedFiles()) { + throw new \Sabre_DAV_Exception_ServiceUnavailable(); + } else { + return \OC\Files\Filesystem::fopen($this->path, 'rb'); + } }