diff options
author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2019-03-06 01:45:17 +0000 |
---|---|---|
committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2019-03-06 01:45:17 +0000 |
commit | 96901b6554b4932db018986e8745bc827fa0500b (patch) | |
tree | 631f5ad46c16730c4b17d0da18e3d2e119a43ae5 /lib | |
parent | bcd8ef65e00fb357ec7c990c43a957366d186ddf (diff) | |
parent | 40ff8f5964ad2ef5f5a79c7508769fd69a5dbb68 (diff) | |
download | pleroma-96901b6554b4932db018986e8745bc827fa0500b.tar.gz |
Merge branch 'fix/escape-reserved-chars-in-filenames' into 'develop'
Properly escape reserved URI charachters in upload urls
Closes #700
See merge request pleroma/pleroma!905
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/upload.ex | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 91a5db8c5..1a97e9fde 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -85,6 +85,10 @@ defmodule Pleroma.Upload do end end + def char_unescaped?(char) do + URI.char_unreserved?(char) or char == ?/ + end + defp get_opts(opts) do {size_limit, activity_type} = case Keyword.get(opts, :type) do @@ -218,9 +222,7 @@ defmodule Pleroma.Upload do defp url_from_spec(base_url, {:file, path}) do path = path - |> URI.encode() - |> String.replace("?", "%3F") - |> String.replace(":", "%3A") + |> URI.encode(&char_unescaped?/1) [base_url, "media", path] |> Path.join() |