diff options
author | LEdoian <ghle@pokemon.ledoian.cz> | 2020-10-26 14:55:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-26 13:55:21 +0000 |
commit | 7b13780c54aef09a2ed1fe35325100a652100cb7 (patch) | |
tree | d7509626a076b2b7865aeef6cb46dfae0fc1af7b | |
parent | Start fewer opentracing spans (#8640) (diff) | |
download | synapse-7b13780c54aef09a2ed1fe35325100a652100cb7.tar.xz |
Check status codes that profile handler returns (#8580)
Fixes #8520 Signed-off-by: Pavel Turinsky <pavel.turinsky@matfyz.cz> Co-authored-by: Erik Johnston <erikj@jki.re>
-rw-r--r-- | changelog.d/8580.bugfix | 1 | ||||
-rw-r--r-- | synapse/handlers/profile.py | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/changelog.d/8580.bugfix b/changelog.d/8580.bugfix new file mode 100644 index 0000000000..31734fd97d --- /dev/null +++ b/changelog.d/8580.bugfix @@ -0,0 +1 @@ +Fix a bug where Synapse would blindly forward bad responses from federation to clients when retrieving profile information. diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py index da5692e03e..3875e53c08 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py @@ -98,6 +98,13 @@ class ProfileHandler(BaseHandler): except RequestSendFailed as e: raise SynapseError(502, "Failed to fetch profile") from e except HttpResponseException as e: + if e.code < 500 and e.code != 404: + # Other codes are not allowed in c2s API + logger.info( + "Server replied with wrong response: %s %s", e.code, e.msg + ) + + raise SynapseError(502, "Failed to fetch profile") raise e.to_synapse_error() async def get_profile_from_cache(self, user_id: str) -> JsonDict: |