diff options
author | Neil Johnson <neil@matrix.org> | 2018-08-01 17:49:41 +0100 |
---|---|---|
committer | Neil Johnson <neil@matrix.org> | 2018-08-01 17:49:41 +0100 |
commit | d766f26de978f3ffc7989f3bdc586f3f87ac28c1 (patch) | |
tree | c8043934dfa079b3af4de4c942917c10df1237e0 /synapse/http/servlet.py | |
parent | clean up (diff) | |
parent | Merge pull request #3630 from matrix-org/neilj/mau_sign_in_log_in_limits (diff) | |
download | synapse-d766f26de978f3ffc7989f3bdc586f3f87ac28c1.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into neilj/mau_tracker
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) |