]> source.dussan.org Git - nextcloud-server.git/commitdiff
Properly quote file names in listFiles query for GDrive
authorVincent Petry <pvince81@owncloud.com>
Thu, 26 Mar 2015 11:15:02 +0000 (12:15 +0100)
committerLukas Reschke <lukas@owncloud.com>
Tue, 31 Mar 2015 13:14:03 +0000 (15:14 +0200)
apps/files_external/lib/google.php
tests/lib/files/storage/storage.php

index 291f9364ddd33b2e36b7b658cd252e746db728fb..860a775c5eb262136e2d82ef51ff802589c18006 100644 (file)
@@ -113,7 +113,7 @@ class Google extends \OC\Files\Storage\Common {
                                if (isset($this->driveFiles[$path])) {
                                        $parentId = $this->driveFiles[$path]->getId();
                                } else {
-                                       $q = "title='".$name."' and '".$parentId."' in parents and trashed = false";
+                                       $q = "title='".rawurlencode($name)."' and '".$parentId."' in parents and trashed = false";
                                        $result = $this->service->files->listFiles(array('q' => $q))->getItems();
                                        if (!empty($result)) {
                                                // Google Drive allows files with the same name, ownCloud doesn't
index 30f403d60df0a42f0b07e5859fb0b2f0dd6c43c3..ad7522f1ea871ac049c407546ad63759a4d8da2f 100644 (file)
@@ -104,13 +104,14 @@ abstract class Storage extends \Test\TestCase {
        }
 
        public function directoryProvider() {
-               return array(
-                       array('folder'),
-                       array(' folder'),
-                       array('folder '),
-                       array('folder with space'),
-                       array('spéciäl földer'),
-               );
+               return [
+                       ['folder'],
+                       [' folder'],
+                       ['folder '],
+                       ['folder with space'],
+                       ['spéciäl földer'],
+                       ['test single\'quote'],
+               ];
        }
 
        function loremFileProvider() {
@@ -163,15 +164,16 @@ abstract class Storage extends \Test\TestCase {
 
 
        public function copyAndMoveProvider() {
-               return array(
-                       array('/source.txt', '/target.txt'),
-                       array('/source.txt', '/target with space.txt'),
-                       array('/source with space.txt', '/target.txt'),
-                       array('/source with space.txt', '/target with space.txt'),
-                       array('/source.txt', '/tärgét.txt'),
-                       array('/sòurcē.txt', '/target.txt'),
-                       array('/sòurcē.txt', '/tärgét.txt'),
-               );
+               return [
+                       ['/source.txt', '/target.txt'],
+                       ['/source.txt', '/target with space.txt'],
+                       ['/source with space.txt', '/target.txt'],
+                       ['/source with space.txt', '/target with space.txt'],
+                       ['/source.txt', '/tärgét.txt'],
+                       ['/sòurcē.txt', '/target.txt'],
+                       ['/sòurcē.txt', '/tärgét.txt'],
+                       ['/single \' quote.txt', '/tar\'get.txt'],
+               ];
        }
 
        public function initSourceAndTarget ($source, $target = null) {