diff options
author | Erik Johnston <erik@matrix.org> | 2018-08-03 09:25:15 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2018-08-03 09:25:15 +0100 |
commit | cb298ff623c1ad375084f7687b7f6e546c4c1c1f (patch) | |
tree | 81854fc4ae0a45bed487a58f2c40974b683adb92 /synapse/http/servlet.py | |
parent | Newsfile (diff) | |
parent | Merge pull request #3645 from matrix-org/michaelkaye/mention_newsfragment (diff) | |
download | synapse-cb298ff623c1ad375084f7687b7f6e546c4c1c1f.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into erikj/refactor_repl_servlet
Diffstat (limited to 'synapse/http/servlet.py')
-rw-r--r-- | synapse/http/servlet.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/http/servlet.py b/synapse/http/servlet.py index 882816dc8f..69f7085291 100644 --- a/synapse/http/servlet.py +++ b/synapse/http/servlet.py @@ -171,8 +171,16 @@ def parse_json_value_from_request(request, allow_empty_body=False): if not content_bytes and allow_empty_body: return None + # Decode to Unicode so that simplejson will return Unicode strings on + # Python 2 try: - content = json.loads(content_bytes) + content_unicode = content_bytes.decode('utf8') + except UnicodeDecodeError: + logger.warn("Unable to decode UTF-8") + raise SynapseError(400, "Content not JSON.", errcode=Codes.NOT_JSON) + + try: + content = json.loads(content_unicode) except Exception as e: logger.warn("Unable to parse JSON: %s", e) raise SynapseError(400, "Content not JSON.", errcode=Codes.NOT_JSON) |