]> source.dussan.org Git - nextcloud-server.git/commitdiff
Ensure that passed argument is always a string
authorLukas Reschke <lukas@owncloud.com>
Fri, 13 Feb 2015 11:49:34 +0000 (12:49 +0100)
committerLukas Reschke <lukas@owncloud.com>
Mon, 1 Jun 2015 15:06:16 +0000 (17:06 +0200)
Some code paths called the `normalizePath` functionality with types other than a string which resulted in unexpected behaviour.

Thus the function is now manually casting the type to a string and I corrected the usage in list.php as well.

apps/files/ajax/list.php
lib/private/files/filesystem.php

index 49080167e29841b10a00f60438fd91c9e80cd2a3..21c88e28b9d075f8a8820ec11146a9785868d4a0 100644 (file)
@@ -5,7 +5,7 @@ OCP\JSON::checkLoggedIn();
 $l = OC_L10N::get('files');
 
 // Load the files
-$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
+$dir = isset($_GET['dir']) ? (string)$_GET['dir'] : '';
 $dir = \OC\Files\Filesystem::normalizePath($dir);
 
 try {
index 03fbe31feabc75757bf7b433e997adaf39ad48c9..883bd4fc6b41c6ea577d3f81e8da2e15abfe401e 100644 (file)
@@ -694,9 +694,18 @@ class Filesystem {
         * Fix common problems with a file path
         * @param string $path
         * @param bool $stripTrailingSlash
+        * @param bool $isAbsolutePath
         * @return string
         */
        public static function normalizePath($path, $stripTrailingSlash = true, $isAbsolutePath = false) {
+               /**
+                * FIXME: This is a workaround for existing classes and files which call
+                *        this function with another type than a valid string. This
+                *        conversion should get removed as soon as all existing
+                *        function calls have been fixed.
+                */
+               $path = (string)$path;
+
                if ($path == '') {
                        return '/';
                }