From 9ab256df30dce367723d358e82f0b4753e4c1a96 Mon Sep 17 00:00:00 2001 From: hackrush Date: Mon, 30 Jul 2018 19:08:36 +0530 Subject: [PATCH] fixed improper error handling when data is not valid JSON (#1326) --- CHANGELOG.md | 2 +- lbrynet/daemon/auth/server.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06e36c801..7e5303185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ at anytime. ### Fixed * loggly error reporting not following `share_usage_data` - * + * improper error handling when data is not valid JSON ### Deprecated * automatic claim renew, this is no longer needed diff --git a/lbrynet/daemon/auth/server.py b/lbrynet/daemon/auth/server.py index 1190a58de..db76a618c 100644 --- a/lbrynet/daemon/auth/server.py +++ b/lbrynet/daemon/auth/server.py @@ -298,12 +298,13 @@ class AuthJSONRPCServer(AuthorizedBase): # maybe its a twisted Failure with another type of error error = JSONRPCError(failure.getErrorMessage() or failure.type.__name__, traceback=failure.getTraceback()) + if not failure.check(ComponentsNotStarted, ComponentStartConditionNotMet): + log.warning("error processing api request: %s\ntraceback: %s", error.message, + "\n".join(error.traceback)) else: # last resort, just cast it as a string error = JSONRPCError(str(failure)) - if not failure.check(ComponentsNotStarted, ComponentStartConditionNotMet): - log.warning("error processing api request: %s\ntraceback: %s", error.message, - "\n".join(error.traceback)) + response_content = jsonrpc_dumps_pretty(error, id=id_) self._set_headers(request, response_content) request.setResponseCode(200)