From 36bbc5c0dafb7cbda64e10e1c56b0f7aa08e7eba Mon Sep 17 00:00:00 2001 From: Andy Craze Date: Wed, 12 Aug 2020 23:27:59 +0200 Subject: [PATCH] Handle invalid JSON returned by nodeinfo endpoint Fixes #1057 --- api/funkwhale_api/instance/views.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/funkwhale_api/instance/views.py b/api/funkwhale_api/instance/views.py index 7117d1a14..f6d1794af 100644 --- a/api/funkwhale_api/instance/views.py +++ b/api/funkwhale_api/instance/views.py @@ -1,4 +1,5 @@ import json +import logging from django.conf import settings @@ -18,6 +19,9 @@ from . import nodeinfo NODEINFO_2_CONTENT_TYPE = "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8" # noqa +logger = logging.getLogger(__name__) + + class AdminSettings(preferences_viewsets.GlobalPreferencesViewSet): pagination_class = None permission_classes = [oauth_permissions.ScopePermission] @@ -44,7 +48,11 @@ class NodeInfo(views.APIView): authentication_classes = [] def get(self, request, *args, **kwargs): - data = nodeinfo.get() + try: + data = nodeinfo.get() + except ValueError: + logger.warn("nodeinfo returned invalid json") + data = {} return Response(data, status=200, content_type=NODEINFO_2_CONTENT_TYPE)