diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index ce6b360817..cd433bdbb8 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -499,8 +499,8 @@ class BBCode } $i = $curlResult->getBody(); - $contType = $curlResult->getContentType(); - $type = Images::getMimeTypeByData($i, $mtch[1], $contType); + $type = $curlResult->getContentType(); + $type = Images::getMimeTypeByData($i, $mtch[1], $type); if ($i) { $Image = new Image($i, $type); diff --git a/src/Model/Photo.php b/src/Model/Photo.php index 2a2d02f86f..23e0b9a38c 100644 --- a/src/Model/Photo.php +++ b/src/Model/Photo.php @@ -492,17 +492,17 @@ class Photo if (!empty($image_url)) { $ret = DI::httpRequest()->get($image_url); $img_str = $ret->getBody(); - $contType = $ret->getContentType(); + $type = $ret->getContentType(); } else { $img_str = ''; - $contType = ''; + $type = ''; } if ($quit_on_error && ($img_str == "")) { return false; } - $type = Images::getMimeTypeByData($img_str, $image_url, $contType); + $type = Images::getMimeTypeByData($img_str, $image_url, $type); $Image = new Image($img_str, $type); if ($Image->isValid()) { diff --git a/src/Model/User.php b/src/Model/User.php index 34a7b78a49..49423ce9ef 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -1095,13 +1095,13 @@ class User $curlResult = DI::httpRequest()->get($photo); if ($curlResult->isSuccess()) { $img_str = $curlResult->getBody(); - $contType = $curlResult->getContentType(); + $type = $curlResult->getContentType(); } else { $img_str = ''; - $contType = ''; + $type = ''; } - $type = Images::getMimeTypeByData($img_str, $photo, $contType); + $type = Images::getMimeTypeByData($img_str, $photo, $type); $Image = new Image($img_str, $type); if ($Image->isValid()) { diff --git a/src/Network/Probe.php b/src/Network/Probe.php index 1115808007..c547afcd4d 100644 --- a/src/Network/Probe.php +++ b/src/Network/Probe.php @@ -429,6 +429,11 @@ class Probe return false; } + // If the file is too large then exit + if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) { + return false; + } + // If it isn't a HTML file then exit if (($curlResult->getContentType() != '') && !strstr(strtolower($curlResult->getContentType()), 'html')) { return false; diff --git a/src/Util/Images.php b/src/Util/Images.php index 1dcca2e392..bf84ee6c22 100644 --- a/src/Util/Images.php +++ b/src/Util/Images.php @@ -77,21 +77,21 @@ class Images * * @param string $image_data Image data * @param string $filename File name (for guessing the type via the extension) - * @param string $mimeType possible mime type + * @param string $mime default mime type * * @return string * @throws \Exception */ - public static function getMimeTypeByData(string $image_data, string $filename = '', string $mimeType = '') + public static function getMimeTypeByData(string $image_data, string $filename = '', string $mime = '') { - if (substr($mimeType, 0, 6) == 'image/') { - Logger::info('Using default mime type', ['filename' => $filename, 'mime' => $mimeType]); - return $mimeType; + if (substr($mime, 0, 6) == 'image/') { + Logger::info('Using default mime type', ['filename' => $filename, 'mime' => $mime]); + return $mime; } $image = @getimagesizefromstring($image_data); if (!empty($image['mime'])) { - Logger::info('Mime type detected via data', ['filename' => $filename, 'default' => $mimeType, 'mime' => $image['mime']]); + Logger::info('Mime type detected via data', ['filename' => $filename, 'default' => $mime, 'mime' => $image['mime']]); return $image['mime']; }