]> source.dussan.org Git - nextcloud-server.git/commitdiff
Files: also check if the source path is valid when doing a rename or copy operation
authorRobin Appelman <icewind@owncloud.com>
Mon, 22 Apr 2013 19:23:12 +0000 (21:23 +0200)
committerRobin Appelman <icewind@owncloud.com>
Mon, 22 Apr 2013 19:23:12 +0000 (21:23 +0200)
lib/files/view.php

index f607bb59aac28b5ba3b29df1a38ddecdce466da4..0da104c107e1329add61725dcb34a247581d7ac1 100644 (file)
@@ -245,13 +245,13 @@ class View {
                if (!is_null($mtime) and !is_numeric($mtime)) {
                        $mtime = strtotime($mtime);
                }
-               
+
                $hooks = array('touch');
-               
+
                if (!$this->file_exists($path)) {
                        $hooks[] = 'write';
                }
-               
+
                return $this->basicOperation('touch', $path, $hooks, $mtime);
        }
 
@@ -263,11 +263,12 @@ class View {
                if (is_resource($data)) { //not having to deal with streams in file_put_contents makes life easier
                        $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path));
                        if (\OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data)
-                               && Filesystem::isValidPath($path)) {
+                               && Filesystem::isValidPath($path)
+                       ) {
                                $path = $this->getRelativePath($absolutePath);
                                $exists = $this->file_exists($path);
                                $run = true;
-                               if ($this->fakeRoot == Filesystem::getRoot() && ! Cache\Scanner::isIgnoredFile($path) ) {
+                               if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isIgnoredFile($path)) {
                                        if (!$exists) {
                                                \OC_Hook::emit(
                                                        Filesystem::CLASSNAME,
@@ -295,7 +296,7 @@ class View {
                                        list ($count, $result) = \OC_Helper::streamCopy($data, $target);
                                        fclose($target);
                                        fclose($data);
-                                       if ($this->fakeRoot == Filesystem::getRoot() && ! Cache\Scanner::isIgnoredFile($path) ) {
+                                       if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isIgnoredFile($path)) {
                                                if (!$exists) {
                                                        \OC_Hook::emit(
                                                                Filesystem::CLASSNAME,
@@ -335,8 +336,11 @@ class View {
                $postFix2 = (substr($path2, -1, 1) === '/') ? '/' : '';
                $absolutePath1 = Filesystem::normalizePath($this->getAbsolutePath($path1));
                $absolutePath2 = Filesystem::normalizePath($this->getAbsolutePath($path2));
-               if (\OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2)
-                       and Filesystem::isValidPath($path2)) {
+               if (
+                       \OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2)
+                       and Filesystem::isValidPath($path2)
+                       and Filesystem::isValidPath($path1)
+               ) {
                        $path1 = $this->getRelativePath($absolutePath1);
                        $path2 = $this->getRelativePath($absolutePath2);
 
@@ -396,7 +400,11 @@ class View {
                $postFix2 = (substr($path2, -1, 1) === '/') ? '/' : '';
                $absolutePath1 = Filesystem::normalizePath($this->getAbsolutePath($path1));
                $absolutePath2 = Filesystem::normalizePath($this->getAbsolutePath($path2));
-               if (\OC_FileProxy::runPreProxies('copy', $absolutePath1, $absolutePath2) and Filesystem::isValidPath($path2)) {
+               if (
+                       \OC_FileProxy::runPreProxies('copy', $absolutePath1, $absolutePath2)
+                       and Filesystem::isValidPath($path2)
+                       and Filesystem::isValidPath($path1)
+               ) {
                        $path1 = $this->getRelativePath($absolutePath1);
                        $path2 = $this->getRelativePath($absolutePath2);
 
@@ -627,7 +635,7 @@ class View {
        private function runHooks($hooks, $path, $post = false) {
                $prefix = ($post) ? 'post_' : '';
                $run = true;
-               if (Filesystem::$loaded and $this->fakeRoot == Filesystem::getRoot() && ! Cache\Scanner::isIgnoredFile($path) ) {
+               if (Filesystem::$loaded and $this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isIgnoredFile($path)) {
                        foreach ($hooks as $hook) {
                                if ($hook != 'read') {
                                        \OC_Hook::emit(
@@ -931,11 +939,11 @@ class View {
        }
 
        /**
-       * Get the owner for a file or folder
-       *
-       * @param string $path
-       * @return string
-       */
+        * Get the owner for a file or folder
+        *
+        * @param string $path
+        * @return string
+        */
        public function getOwner($path) {
                return $this->basicOperation('getOwner', $path);
        }