From: Mikael Nordfeldth <mmn@hethane.se>
Date: Sat, 8 Mar 2014 00:42:24 +0000 (+0100)
Subject: Only accept filenames for existing files in getUploadedFileType
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=6f6065e5e997ad3062b3f1c659004f692db597f4;p=quix0rs-gnu-social.git

Only accept filenames for existing files in getUploadedFileType

Getting metadata from filehandles just meant duplicating work
---

diff --git a/lib/mediafile.php b/lib/mediafile.php
index ad696ccca6..e01d2eaeab 100644
--- a/lib/mediafile.php
+++ b/lib/mediafile.php
@@ -252,7 +252,7 @@ class MediaFile
 
         File::respectsQuota($scoped, filesize($stream['uri']));
 
-        $mimetype = MediaFile::getUploadedFileType($fh);
+        $mimetype = MediaFile::getUploadedFileType($stream['uri']);
 
         $filename = File::filename($scoped, "email", $mimetype);
 
@@ -304,19 +304,8 @@ class MediaFile
         // are unambiguous for most image files, but nearly useless
         // for office document formats.
 
-        if (is_string($f)) {
-
-            // assuming a filename
-
-            $filetype = MIME_Type::autoDetect($f);
-
-        } else {
-
-            // assuming a filehandle
-
-            $stream  = stream_get_meta_data($f);
-            $filetype = MIME_Type::autoDetect($stream['uri']);
-        }
+        // We only accept filenames to existing files
+        $filetype = MIME_Type::autoDetect($f);
 
         // The content-based sources for MIME_Type::autoDetect()
         // are wildly unreliable for office-type documents. If we've
diff --git a/tests/MediaFileTest.php b/tests/MediaFileTest.php
index b1891574e2..6d96497c5b 100644
--- a/tests/MediaFileTest.php
+++ b/tests/MediaFileTest.php
@@ -51,7 +51,8 @@ class MediaFileTest extends PHPUnit_Framework_TestCase
         $tmp = tmpfile();
         fwrite($tmp, file_get_contents($filename));
 
-        $type = MediaFile::getUploadedFileType($tmp, basename($filename));
+        $tmp_metadata = stream_get_meta_data($tmp);
+        $type = MediaFile::getUploadedFileType($tmp_metadata['uri'], basename($filename));
         $this->assertEquals($expectedType, $type);
     }