diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-10 13:08:22 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-12 10:47:47 +0100 |
commit | 80ef53eff09886efcbe983c1db383fc5290b2048 (patch) | |
tree | c74b64d3f350704a452dfb70031792c2fd392fb5 /lib/private | |
parent | 5054b8e4aa5dce43fa8aeeb89728450ecbac1342 (diff) | |
download | nextcloud-server-80ef53eff09886efcbe983c1db383fc5290b2048.tar.gz nextcloud-server-80ef53eff09886efcbe983c1db383fc5290b2048.zip |
verify the file name length not to exceed 255 characters + verify path during rename
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')); } } } |