]> cat aescling's git repositories - mastodon.git/commitdiff
Rescue when there's no extension in the remotable (#6358)
authorRenato "Lond" Cerqueira <renato@lond.com.br>
Thu, 8 Mar 2018 01:25:10 +0000 (02:25 +0100)
committerEugen Rochko <eugen@zeonfederated.com>
Thu, 8 Mar 2018 01:25:10 +0000 (02:25 +0100)
* Rescue when there's no extension in the remotable
Sometimes the remotable is pointing to a directory with no file
extension. Maybe it should not be expecting to identify based on
extensions to begin with, but since it's the case, it should be ready
for it.

* Fix codeclimate issue

* Check if filename is nil instead of rescueing exception
Suggestion made in the PR

* Avoid concatenation issue if filename is nil
If filename is nil, extname was undefined

* Invert condition
Address PR comments

app/models/concerns/remotable.rb

index 990035b34b80f7934cd87cb43198950611a2c64c..020303a2f97ade3dd9556d60d448c8b4a0533345 100644 (file)
@@ -28,7 +28,11 @@ module Remotable
           matches  = response.headers['content-disposition']&.match(/filename="([^"]*)"/)
           filename = matches.nil? ? parsed_url.path.split('/').last : matches[1]
           basename = SecureRandom.hex(8)
-          extname  = File.extname(filename)
+          extname = if filename.nil?
+                      ''
+                    else
+                      File.extname(filename)
+                    end
 
           send("#{attachment_name}=", StringIO.new(response.to_s))
           send("#{attachment_name}_file_name=", basename + extname)