diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2020-10-05 10:24:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-05 10:24:17 -0400 |
commit | da11cc22be37e8858c19774779ad7d02d64a458c (patch) | |
tree | 9fde7b9187b6ae784aa8f762309bd7a4d7636537 | |
parent | Allow ThirdPartyEventRules modules to manipulate public room state (#8292) (diff) | |
download | synapse-da11cc22be37e8858c19774779ad7d02d64a458c.tar.xz |
Ensure that event.redacts is the proper type before handling it (#8457)
This fixes a bug when backfilling invalid events.
Diffstat (limited to '')
-rw-r--r-- | changelog.d/8457.bugfix | 1 | ||||
-rw-r--r-- | synapse/event_auth.py | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/changelog.d/8457.bugfix b/changelog.d/8457.bugfix new file mode 100644 index 0000000000..545b06d180 --- /dev/null +++ b/changelog.d/8457.bugfix @@ -0,0 +1 @@ +Fix a bug where backfilling a room with an event that was missing the `redacts` field would break. diff --git a/synapse/event_auth.py b/synapse/event_auth.py index 8c907ad596..56f8dc9caf 100644 --- a/synapse/event_auth.py +++ b/synapse/event_auth.py @@ -446,6 +446,8 @@ def check_redaction( if room_version_obj.event_format == EventFormatVersions.V1: redacter_domain = get_domain_from_id(event.event_id) + if not isinstance(event.redacts, str): + return False redactee_domain = get_domain_from_id(event.redacts) if redacter_domain == redactee_domain: return True |