mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-03 13:04:51 -04:00
Check *all* auth events for room id and rejection (#11009)
This fixes a bug where we would accept an event whose `auth_events` include rejected events, if the rejected event was shadowed by another `auth_event` with same `(type, state_key)`. The approach is to pass a list of auth events into `check_auth_rules_for_event` instead of a dict, which of course means updating the call sites. This is an extension of #10956.
This commit is contained in:
parent
73743b8ad1
commit
a5d2ea3d08
8 changed files with 122 additions and 85 deletions
|
@ -55,8 +55,7 @@ class EventAuthHandler:
|
|||
"""Check an event passes the auth rules at its own auth events"""
|
||||
auth_event_ids = event.auth_event_ids()
|
||||
auth_events_by_id = await self._store.get_events(auth_event_ids)
|
||||
auth_events = {(e.type, e.state_key): e for e in auth_events_by_id.values()}
|
||||
check_auth_rules_for_event(room_version_obj, event, auth_events)
|
||||
check_auth_rules_for_event(room_version_obj, event, auth_events_by_id.values())
|
||||
|
||||
def compute_auth_events(
|
||||
self,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue