0

I am using CarrierWave for file uploads in my application. All of sudden since 6th October 2018, pdf files are not able to upload, and app raises this error:

Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: 
`identify /tmp/mini_magick20181010-10534-s5jchg.pdf` failed with error: 
identify: not authorized `/tmp/mini_magick20181010-10534-s5jchg.pdf' @ 
error/constitute.c/ReadImage/412. 

There are lot of question on same but none of the answers have solved this issue. I have also tried with Rmagick but no luck.

Below is my uploader set up

class AttachmentUploader < CarrierWave::Uploader::Base

  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  include CarrierWave::MiniMagick

  # Choose what kind of storage to use for this uploader:
  #storage :file
  storage :fog

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  # Provide a default URL as a default if there hasn't been a file uploaded:
  def default_url
    "no-photo.png"
  end


  # Create different versions of your uploaded files:

  version :thumb do
    # crop to exactly 80px x 80px
    process :resize_to_fill => [80, 80]
  end

  version :web do
    # scale to be no larger than 800px x 500px
    process :resize_to_limit => [800, 500]
  end

  # Add a white list of extensions which are allowed to be uploaded.
  # For images you might use something like this:
  # def extension_white_list
  #   %w(jpg jpeg gif png)
  # end

  # Override the filename of the uploaded files:
  # Avoid using model.id or version_name here, see uploader/store.rb for details.
  # def filename
  #   "something.jpg" if original_filename
  # end

end

Let me know your thoughts.

Thank you

lacostenycoder
  • 10,623
  • 4
  • 31
  • 48

1 Answers1

0

This was caused by a security update in ImageMagick that was released in Oct 2018 (https://launchpad.net/ubuntu/+source/imagemagick/8:6.7.7.10-6ubuntu3.13).

There's a pretty simple fix. See https://stackoverflow.com/a/52661288/935514.

Note: you only need to change the <policy domain="coder" rights="read|write" pattern="PDF" /> line and you only need to restart the web workers, not the entire server.

Will Koehler
  • 1,746
  • 22
  • 16