From ad4c731c4c4f84f998013c7f4632b23739d16ec4 Mon Sep 17 00:00:00 2001
From: Lukas Reschke <lukas@owncloud.com>
Date: Thu, 30 Jul 2015 11:22:14 +0200
Subject: [PATCH] Correct regular expressions

Previously the regex was only matching on single characters. Meaning that file names such as ":+1:.txt" where possible while ":+1:" alone never was. This check apparently never worked as expected.
---
 lib/private/files/view.php               | 4 ++--
 tests/lib/files/pathverificationtest.php | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index cb3c05d2bca..1a6be73d5bb 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -1656,11 +1656,11 @@ class View {
 		}
 
 		// verify database - e.g. mysql only 3-byte chars
-		if (preg_match('%^(?:
+		if (preg_match('%(?:
       \xF0[\x90-\xBF][\x80-\xBF]{2}      # planes 1-3
     | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
     | \xF4[\x80-\x8F][\x80-\xBF]{2}      # plane 16
-)*$%xs', $fileName)) {
+)%xs', $fileName)) {
 			throw new InvalidPathException($l10n->t('4-byte characters are not supported in file names'));
 		}
 
diff --git a/tests/lib/files/pathverificationtest.php b/tests/lib/files/pathverificationtest.php
index b59aceba7b1..f7d5f057c14 100644
--- a/tests/lib/files/pathverificationtest.php
+++ b/tests/lib/files/pathverificationtest.php
@@ -83,6 +83,8 @@ class PathVerification extends \Test\TestCase {
 		return [
 			// this is the monkey emoji - http://en.wikipedia.org/w/index.php?title=%F0%9F%90%B5&redirect=no
 			['🐵'],
+			['🐵.txt'],
+			['txt.💩'],
 		];
 	}
 
-- 
GitLab