From 1c54a6dc7783de6d7f08582bfad5cd593b522f52 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Fri, 15 Oct 2010 03:53:54 +0000 Subject: [PATCH] BUGFIX Case insensitive extension checks in File::validate() (fixes #5781, thanks simon_w) (from r107539) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112604 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- filesystem/File.php | 5 +++-- tests/filesystem/FileTest.php | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/filesystem/File.php b/filesystem/File.php index 57cc4f7eb..a8e10778b 100755 --- a/filesystem/File.php +++ b/filesystem/File.php @@ -770,8 +770,9 @@ class File extends DataObject { // Extension validation // TODO Merge this with Upload_Validator $extension = $this->getExtension(); - if($extension && !in_array($extension, self::$allowed_extensions)) { - $exts = self::$allowed_extensions; + $allowed = array_map('strtolower', self::$allowed_extensions); + if($extension && !in_array(strtolower($extension), $allowed)) { + $exts = $allowed; sort($exts); $message = sprintf( _t( diff --git a/tests/filesystem/FileTest.php b/tests/filesystem/FileTest.php index 0f62ab7ed..4d2adebde 100644 --- a/tests/filesystem/FileTest.php +++ b/tests/filesystem/FileTest.php @@ -60,6 +60,11 @@ class FileTest extends SapphireTest { $v = $file->validate(); $this->assertTrue($v->valid()); + // Capital extension is valid as well + $file->Name = 'asdf.TXT'; + $v = $file->validate(); + $this->assertTrue($v->valid()); + File::$allowed_extensions = $origExts; }