From 2762985c11e01ede473d86a33af279bc341f9a46 Mon Sep 17 00:00:00 2001 From: eileen <emcnaughton@wikimedia.org> Date: Mon, 14 Jan 2019 17:03:28 +1300 Subject: [PATCH] Remove support for passing a filename into civicrm/file. I can find no evidence this is used & it feels like a security risk, albeit they still need the path --- CRM/Core/Page/File.php | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/CRM/Core/Page/File.php b/CRM/Core/Page/File.php index c197f01cbc0..d7372234276 100644 --- a/CRM/Core/Page/File.php +++ b/CRM/Core/Page/File.php @@ -38,21 +38,16 @@ class CRM_Core_Page_File extends CRM_Core_Page { * Run page. */ public function run() { - $fileName = CRM_Utils_Request::retrieve('filename', 'String', $this); - $path = CRM_Core_Config::singleton()->customFileUploadDir . $fileName; - $mimeType = CRM_Utils_Request::retrieve('mime-type', 'String', $this); $action = CRM_Utils_Request::retrieve('action', 'String', $this); $download = CRM_Utils_Request::retrieve('download', 'Integer', $this, FALSE, 1); $disposition = $download == 0 ? 'inline' : 'download'; - // if we are not providing essential parameter needed for file preview then - if (empty($fileName) && empty($mimeType)) { - $eid = CRM_Utils_Request::retrieve('eid', 'Positive', $this, TRUE); - $fid = CRM_Utils_Request::retrieve('fid', 'Positive', $this, FALSE); - $id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE); + $eid = CRM_Utils_Request::retrieve('eid', 'Positive', $this, TRUE); + $fid = CRM_Utils_Request::retrieve('fid', 'Positive', $this, FALSE); + $id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE); - list($path, $mimeType) = CRM_Core_BAO_File::path($id, $eid); - } + list($path, $mimeType) = CRM_Core_BAO_File::path($id, $eid); + $mimeType = CRM_Utils_Request::retrieveValue('mime-type', 'String', $mimeType, FALSE); if (!$path) { CRM_Core_Error::statusBounce('Could not retrieve the file'); -- GitLab