summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-08-11 11:04:04 -0400
committerLukas Reschke <lukas@statuscode.ch>2012-08-13 01:29:32 +0200
commit95ef80e6dbcd6bed0e32eac6d7a7e1cb8d12553c (patch)
treed3adf19a9d6da64024483dfd2e3641be78a57736
parent4fd069b47906ebcf83887970c732d464dbe7d37a (diff)
downloadnextcloud-server-95ef80e6dbcd6bed0e32eac6d7a7e1cb8d12553c.tar.gz
nextcloud-server-95ef80e6dbcd6bed0e32eac6d7a7e1cb8d12553c.zip
Check blacklist when renaming files
-rw-r--r--lib/base.php1
-rw-r--r--lib/filesystem.php14
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/base.php b/lib/base.php
index 0e7e370cd6d..67f8e7702fc 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -434,6 +434,7 @@ class OC{
// Check for blacklisted files
OC_Hook::connect('OC_Filesystem','write','OC_Filesystem','isBlacklisted');
+ OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted');
//make sure temporary files are cleaned up
register_shutdown_function(array('OC_Helper','cleanTmp'));
diff --git a/lib/filesystem.php b/lib/filesystem.php
index 2c7df5daa3c..2a0c1cea93e 100644
--- a/lib/filesystem.php
+++ b/lib/filesystem.php
@@ -372,13 +372,21 @@ class OC_Filesystem{
/**
* checks if a file is blacklsited for storage in the filesystem
+ * Listens to write and rename hooks
* @param array $data from hook
*/
static public function isBlacklisted($data){
$blacklist = array('.htaccess');
- $filename = strtolower(basename($data['path']));
- if(in_array($filename,$blacklist)){
- $data['run'] = false;
+ if (isset($data['path'])) {
+ $path = $data['path'];
+ } else if (isset($data['newpath'])) {
+ $path = $data['newpath'];
+ }
+ if (isset($path)) {
+ $filename = strtolower(basename($path));
+ if (in_array($filename, $blacklist)) {
+ $data['run'] = false;
+ }
}
}