summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrendan Abolivier <babolivier@matrix.org>2020-03-06 11:02:52 +0000
committerBrendan Abolivier <babolivier@matrix.org>2020-03-06 11:05:00 +0000
commit80e580ae92d1170a4ac2f6afb2fa70f5f8e7b4ac (patch)
tree86dd0171930dc9182de76802717c575e11dbb6cb
parentConvert remote key resource REST layer to async/await. (#7020) (diff)
downloadsynapse-80e580ae92d1170a4ac2f6afb2fa70f5f8e7b4ac.tar.xz
Make sure that is_verified is a boolean when processing room keys
-rw-r--r--synapse/handlers/e2e_room_keys.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/synapse/handlers/e2e_room_keys.py b/synapse/handlers/e2e_room_keys.py
index f1b4424a02..854c181fcc 100644
--- a/synapse/handlers/e2e_room_keys.py
+++ b/synapse/handlers/e2e_room_keys.py
@@ -207,6 +207,12 @@ class E2eRoomKeysHandler(object):
             changed = False  # if anything has changed, we need to update the etag
             for room_id, room in iteritems(room_keys["rooms"]):
                 for session_id, room_key in iteritems(room["sessions"]):
+                    if not isinstance(room_key["is_verified"], bool):
+                        msg = (
+                            "is_verified must be a boolean in keys for room %s" % room_id
+                        )
+                        raise SynapseError(400, msg, Codes.INVALID_PARAM)
+
                     log_kv(
                         {
                             "message": "Trying to upload room key",