From 4258e68d8fb3292db521034b173594f70e34760a Mon Sep 17 00:00:00 2001 From: Milos Stojanovic Date: Mon, 9 Sep 2019 10:10:59 +0200 Subject: [PATCH] fix for filename sanitize/cut --- backend/Services/Tmpfs/Adapters/Tmpfs.php | 11 +---------- tests/backend/Unit/TmpfsTest.php | 7 +++++++ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/Services/Tmpfs/Adapters/Tmpfs.php b/backend/Services/Tmpfs/Adapters/Tmpfs.php index f7a2b27..671cf5c 100644 --- a/backend/Services/Tmpfs/Adapters/Tmpfs.php +++ b/backend/Services/Tmpfs/Adapters/Tmpfs.php @@ -137,15 +137,6 @@ class Tmpfs implements Service, TmpfsInterface ); // maximize filename length to 255 bytes http://serverfault.com/a/9548/44086 - $ext = pathinfo($filename, PATHINFO_EXTENSION); - - return mb_strcut( - pathinfo($filename, PATHINFO_FILENAME), - 0, - 255 - ($ext ? strlen($ext) + 1 : 0), - (string) mb_detect_encoding($filename) - ).( - $ext ? '.'.$ext : '' - ); + return mb_substr($filename, 0, 255); } } diff --git a/tests/backend/Unit/TmpfsTest.php b/tests/backend/Unit/TmpfsTest.php index 11b7808..a607330 100644 --- a/tests/backend/Unit/TmpfsTest.php +++ b/tests/backend/Unit/TmpfsTest.php @@ -157,5 +157,12 @@ class TmpfsTest extends TestCase // with invalid chars $this->assertEquals('..--s-u---pe----rm---an-.t-xt..--', $this->invokeMethod($this->service, 'sanitizeFilename', ["../\\s\"u<:>pe////rm?*|an\\.t\txt../;"])); + + // oversized + $this->assertEquals( + '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', + $this->invokeMethod($this->service, 'sanitizeFilename', [ + '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456' + ])); } }