summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2018-09-25 16:34:40 +0100
committerRichard van der Hoff <richard@matrix.org>2018-09-26 14:40:16 +0100
commit8afddf7afec8c6ee790a10e24fe817d663bfb4ee (patch)
treeb20088f05cb8f35de980b6b048451084d355a4b6 /synapse
parentMerge branch 'develop' into rav/hacky_cache_factor_fix (diff)
downloadsynapse-8afddf7afec8c6ee790a10e24fe817d663bfb4ee.tar.xz
Fix error handling for missing auth_event
When we were authorizing an event, if there was no `m.room.create` in its
auth_events, we would raise a SynapseError with a cryptic message, which then
meant that we would bail out of processing any incoming events, rather than
storing a rejection for the faulty event and moving on.

We should treat the absent event the same as any other auth failure, by
raising an AuthError, so that the event is marked as rejected.
Diffstat (limited to 'synapse')
-rw-r--r--synapse/event_auth.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/synapse/event_auth.py b/synapse/event_auth.py
index 6baeccca38..02fa46ef7f 100644
--- a/synapse/event_auth.py
+++ b/synapse/event_auth.py
@@ -98,9 +98,9 @@ def check(event, auth_events, do_sig_check=True, do_size_check=True):
     creation_event = auth_events.get((EventTypes.Create, ""), None)
 
     if not creation_event:
-        raise SynapseError(
+        raise AuthError(
             403,
-            "Room %r does not exist" % (event.room_id,)
+            "No create event in auth events",
         )
 
     creating_domain = get_domain_from_id(event.room_id)