about summary refs log tree commit diff
path: root/lib/paperclip
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-07-07 16:32:14 +0200
committerGitHub <noreply@github.com>2020-07-07 16:32:14 +0200
commit701e5b9a19db34834108fdc5fe48923784385ed2 (patch)
tree814082d85d8c7634bc4baee6ac12c11f64ee1f62 /lib/paperclip
parent6e25574ce599cbc37b7215ded03c7d07208af6bb (diff)
Fix ogg vorbis files with a cover art not being correctly processed (#14255)
Diffstat (limited to 'lib/paperclip')
-rw-r--r--lib/paperclip/media_type_spoof_detector_extensions.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/paperclip/media_type_spoof_detector_extensions.rb b/lib/paperclip/media_type_spoof_detector_extensions.rb
index 9c0557356..363934d8d 100644
--- a/lib/paperclip/media_type_spoof_detector_extensions.rb
+++ b/lib/paperclip/media_type_spoof_detector_extensions.rb
@@ -2,8 +2,16 @@
 
 module Paperclip
   module MediaTypeSpoofDetectorExtensions
-    def calculated_content_type
-      @calculated_content_type ||= type_from_mime_magic || type_from_file_command
+    def mapping_override_mismatch?
+      !Array(mapped_content_type).include?(calculated_content_type) && !Array(mapped_content_type).include?(type_from_mime_magic)
+    end
+
+    def calculated_media_type_from_mime_magic
+      @calculated_media_type_from_mime_magic ||= type_from_mime_magic.split('/').first
+    end
+
+    def calculated_type_mismatch?
+      !media_types_from_name.include?(calculated_media_type) && !media_types_from_name.include?(calculated_media_type_from_mime_magic)
     end
 
     def type_from_mime_magic