From 11464d43c617db7b66a277d40c0a5138cc42dcbd Mon Sep 17 00:00:00 2001 From: prasad <prasad@vtiger.com> Date: Thu, 30 Jun 2016 14:14:33 +0530 Subject: [PATCH] Routing image validation in CompanyDetailsSave action to common function. --- .../Vtiger/actions/CompanyDetailsSave.php | 21 +++---------------- vtlib/Vtiger/Functions.php | 2 +- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/modules/Settings/Vtiger/actions/CompanyDetailsSave.php b/modules/Settings/Vtiger/actions/CompanyDetailsSave.php index 676e22bc2..afaa28be0 100644 --- a/modules/Settings/Vtiger/actions/CompanyDetailsSave.php +++ b/modules/Settings/Vtiger/actions/CompanyDetailsSave.php @@ -19,25 +19,10 @@ class Settings_Vtiger_CompanyDetailsSave_Action extends Settings_Vtiger_Basic_Ac if ($request->get('organizationname')) { $saveLogo = $status = true; if(!empty($_FILES['logo']['name'])) { - $logoDetails = $_FILES['logo']; - $fileType = explode('/', $logoDetails['type']); - $fileType = $fileType[1]; + $logoDetails = $_FILES['logo']; + $saveLogo = Vtiger_Functions::validateImage($logoDetails); + if (is_string($saveLogo)) $saveLogo = ($saveLogo == 'false')? false : true; - if (!$logoDetails['size'] || !in_array($fileType, Settings_Vtiger_CompanyDetails_Model::$logoSupportedFormats)) { - $saveLogo = false; - } - - //mime type check - $mimeType = vtlib_mime_content_type($logoDetails['tmp_name']); - $mimeTypeContents = explode('/', $mimeType); - if (!$logoDetails['size'] || $mimeTypeContents[0] != 'image' || !in_array($mimeTypeContents[1], Settings_Vtiger_CompanyDetails_Model::$logoSupportedFormats)) { - $saveLogo = false; - } - // Check for php code injection - $imageContents = file_get_contents($_FILES["logo"]["tmp_name"]); - if (preg_match('/(<\?php?(.*?))/i', $imageContents) == 1) { - $saveLogo = false; - } if ($saveLogo) { $moduleModel->saveLogo(); } diff --git a/vtlib/Vtiger/Functions.php b/vtlib/Vtiger/Functions.php index 2c41085a7..e5534cfe2 100644 --- a/vtlib/Vtiger/Functions.php +++ b/vtlib/Vtiger/Functions.php @@ -606,7 +606,7 @@ class Vtiger_Functions { } //mime type check - $mimeType = mime_content_type($file_details['tmp_name']); + $mimeType = self::mime_content_type($file_details['tmp_name']); $mimeTypeContents = explode('/', $mimeType); if (!$file_details['size'] || strtolower($mimeTypeContents[0]) !== 'image' || !in_array($mimeTypeContents[1], $mimeTypesList)) { $saveimage = 'false'; -- GitLab