diff options
author | Erik Johnston <erik@matrix.org> | 2020-01-23 15:19:03 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-23 15:19:03 +0000 |
commit | fa4d609e20318821e2ffbeb35bfddbc86be81be0 (patch) | |
tree | b50bfabb6ad971f695301d38194f8c956f57807b /synapse/storage/data_stores | |
parent | Merge branch 'master' into develop (diff) | |
download | synapse-fa4d609e20318821e2ffbeb35bfddbc86be81be0.tar.xz |
Make 'event.redacts' never raise. (#6771)
There are quite a few places that we assume that a redaction event has a corresponding `redacts` key, which is not always the case. So lets cheekily make it so that event.redacts just returns None instead.
Diffstat (limited to 'synapse/storage/data_stores')
-rw-r--r-- | synapse/storage/data_stores/main/events.py | 2 | ||||
-rw-r--r-- | synapse/storage/data_stores/main/events_worker.py | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/synapse/storage/data_stores/main/events.py b/synapse/storage/data_stores/main/events.py index 596daf8909..ce553566a5 100644 --- a/synapse/storage/data_stores/main/events.py +++ b/synapse/storage/data_stores/main/events.py @@ -951,7 +951,7 @@ class EventsStore( elif event.type == EventTypes.Message: # Insert into the event_search table. self._store_room_message_txn(txn, event) - elif event.type == EventTypes.Redaction: + elif event.type == EventTypes.Redaction and event.redacts is not None: # Insert into the redactions table. self._store_redaction(txn, event) elif event.type == EventTypes.Retention: diff --git a/synapse/storage/data_stores/main/events_worker.py b/synapse/storage/data_stores/main/events_worker.py index 3b93e0597a..7251e819f5 100644 --- a/synapse/storage/data_stores/main/events_worker.py +++ b/synapse/storage/data_stores/main/events_worker.py @@ -287,7 +287,7 @@ class EventsWorkerStore(SQLBaseStore): # we have to recheck auth now. if not allow_rejected and entry.event.type == EventTypes.Redaction: - if not hasattr(entry.event, "redacts"): + if entry.event.redacts is None: # A redacted redaction doesn't have a `redacts` key, in # which case lets just withhold the event. # |