summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-07-08 12:59:49 +0300
committerAriadne Conill <ariadne@dereferenced.org>2019-07-28 22:43:11 +0000
commit48aed88dbd911f759416d0e404113cd6720e98d7 (patch)
tree6b718f7eb05fc6216419f719b12c8fc0f9cfdd6e
parentfd4963006a629d8303de56c53a66c4c4b66d8609 (diff)
FallbackRedirector: Do not crash on Metadata rendering errors
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/pleroma/web/router.ex16
2 files changed, 16 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a71802565..739141e49 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- MediaProxy: fix matching filenames
- MediaProxy: fix filename encoding
- Migrations: fix a sporadic migration failure
+- Metadata rendering crashes no longer result in 500 errors
## [1.0.1] - 2019-07-14
### Security
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 055289dc5..ff9ed1640 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -724,6 +724,7 @@ end
defmodule Fallback.RedirectController do
use Pleroma.Web, :controller
+ require Logger
alias Pleroma.User
alias Pleroma.Web.Metadata
@@ -750,7 +751,20 @@ defmodule Fallback.RedirectController do
def redirector_with_meta(conn, params) do
{:ok, index_content} = File.read(index_file_path())
- tags = Metadata.build_tags(params)
+
+ tags =
+ try do
+ Metadata.build_tags(params)
+ rescue
+ e ->
+ Logger.error(
+ "Metadata rendering for #{conn.request_path} failed.\n" <>
+ Exception.format(:error, e, __STACKTRACE__)
+ )
+
+ ""
+ end
+
response = String.replace(index_content, "<!--server-generated-meta-->", tags)
conn