projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix digest mix task on OTP releases
[akkoma]
/
lib
/
pleroma
/
web
/
media_proxy
/
media_proxy_controller.ex
diff --git
a/lib/pleroma/web/media_proxy/media_proxy_controller.ex
b/lib/pleroma/web/media_proxy/media_proxy_controller.ex
index 1e9520d462c36fc29da22698e87fc533db0f237b..4657a4383563802f19fef4a25730ac6e121ebf82 100644
(file)
--- a/
lib/pleroma/web/media_proxy/media_proxy_controller.ex
+++ b/
lib/pleroma/web/media_proxy/media_proxy_controller.ex
@@
-1,9
+1,10
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-20
19
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-20
20
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MediaProxy.MediaProxyController do
use Pleroma.Web, :controller
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MediaProxy.MediaProxyController do
use Pleroma.Web, :controller
+
alias Pleroma.ReverseProxy
alias Pleroma.Web.MediaProxy
alias Pleroma.ReverseProxy
alias Pleroma.Web.MediaProxy
@@
-30,7
+31,7
@@
defmodule Pleroma.Web.MediaProxy.MediaProxyController do
def filename_matches(%{"filename" => _} = _, path, url) do
filename = MediaProxy.filename(url)
def filename_matches(%{"filename" => _} = _, path, url) do
filename = MediaProxy.filename(url)
- if filename &&
Path.basename(path) != filename
do
+ if filename &&
does_not_match(path, filename)
do
{:wrong_filename, filename}
else
:ok
{:wrong_filename, filename}
else
:ok
@@
-38,4
+39,9
@@
defmodule Pleroma.Web.MediaProxy.MediaProxyController do
end
def filename_matches(_, _, _), do: :ok
end
def filename_matches(_, _, _), do: :ok
+
+ defp does_not_match(path, filename) do
+ basename = Path.basename(path)
+ basename != filename and URI.decode(basename) != filename and URI.encode(basename) != filename
+ end
end
end