diff options
author | Mark Felder <feld@FreeBSD.org> | 2020-09-04 17:56:05 -0500 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2020-09-08 12:29:38 +0300 |
commit | 216c84a8f4d82649110ffaa2bc9d02b879805c5f (patch) | |
tree | 8cc0eee8377ad60bd405f8544a0acea1b8116154 | |
parent | 3a98960c2684229435c5d04e4f3e0611098ceea2 (diff) | |
download | pleroma-216c84a8f4d82649110ffaa2bc9d02b879805c5f.tar.gz |
Bypass the filter based on content-type as well in case a webp image is uploaded with the wrong file extension.
-rw-r--r-- | lib/pleroma/upload/filter/exiftool.ex | 5 | ||||
-rw-r--r-- | test/upload/filter/exiftool_test.exs | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/pleroma/upload/filter/exiftool.ex b/lib/pleroma/upload/filter/exiftool.ex index 94d12c01b..b07a671ac 100644 --- a/lib/pleroma/upload/filter/exiftool.ex +++ b/lib/pleroma/upload/filter/exiftool.ex @@ -10,8 +10,11 @@ defmodule Pleroma.Upload.Filter.Exiftool do @behaviour Pleroma.Upload.Filter @spec filter(Pleroma.Upload.t()) :: {:ok, any()} | {:error, String.t()} + + # webp is not compatible with exiftool at this time + def filter(%Pleroma.Upload{content_type: "image/webp"}), do: {:ok, :noop} + def filter(%Pleroma.Upload{name: file, tempfile: path, content_type: "image" <> _}) do - # webp is not compatible with exiftool at this time if Regex.match?(~r/\.(webp)$/i, file) do {:ok, :noop} else diff --git a/test/upload/filter/exiftool_test.exs b/test/upload/filter/exiftool_test.exs index fe24036d9..84a3f8b30 100644 --- a/test/upload/filter/exiftool_test.exs +++ b/test/upload/filter/exiftool_test.exs @@ -34,11 +34,15 @@ defmodule Pleroma.Upload.Filter.ExiftoolTest do test "verify webp files are skipped" do upload = %Pleroma.Upload{ name: "sample.webp", - content_type: "image/webp", - path: Path.absname("/dev/null"), - tempfile: Path.absname("/dev/null") + content_type: "image/webp" + } + + bad_type = %Pleroma.Upload{ + name: "sample.webp", + content_type: "image/jpeg" } assert Filter.Exiftool.filter(upload) == {:ok, :noop} + assert Filter.Exiftool.filter(bad_type) == {:ok, :noop} end end |