diff options
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/files/storage/common.php | 5 | ||||
-rw-r--r-- | lib/private/files/view.php | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 8549d5a1fad..031a2f1cb7a 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -13,6 +13,7 @@ use OC\Files\Cache\Scanner; use OC\Files\Cache\Storage; use OC\Files\Filesystem; use OC\Files\Cache\Watcher; +use OCP\Files\FileNameTooLongException; use OCP\Files\InvalidCharacterInPathException; use OCP\Files\InvalidPathException; use OCP\Files\ReservedWordException; @@ -460,6 +461,10 @@ abstract class Common implements \OC\Files\Storage\Storage { * @inheritdoc */ public function verifyPath($path, $fileName) { + if (isset($fileName[255])) { + throw new FileNameTooLongException(); + } + // NOTE: $path will remain unverified for now if (\OC_Util::runningOnWindows()) { $this->verifyWindowsPath($fileName); diff --git a/lib/private/files/view.php b/lib/private/files/view.php index 8b448abeb89..53e13396621 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -11,6 +11,7 @@ namespace OC\Files; use OC\Files\Cache\Updater; use OC\Files\Mount\MoveableMount; +use OCP\Files\FileNameTooLongException; use OCP\Files\InvalidCharacterInPathException; use OCP\Files\InvalidPathException; use OCP\Files\ReservedWordException; @@ -585,6 +586,8 @@ class View { ); } if ($run) { + $this->verifyPath(dirname($path2), basename($path2)); + $mp1 = $this->getMountPoint($path1 . $postFix1); $mp2 = $this->getMountPoint($path2 . $postFix2); $manager = Filesystem::getMountManager(); @@ -1573,6 +1576,8 @@ class View { throw new InvalidPathException($l10n->t('File name is a reserved word')); } catch (InvalidCharacterInPathException $ex) { throw new InvalidPathException($l10n->t('File name contains at least one invalid character')); + } catch (FileNameTooLongException $ex) { + throw new InvalidPathException($l10n->t('File name is too long')); } } } |