diff options
author | Erik Johnston <erik@matrix.org> | 2014-12-11 15:56:01 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-12-11 15:56:06 +0000 |
commit | 0b0436923819a0252a7a2a6f70a1f929b45b9114 (patch) | |
tree | e4b6286969345858b37049a5d82777200023d844 /synapse/storage | |
parent | Fix prev_content (diff) | |
download | synapse-0b0436923819a0252a7a2a6f70a1f929b45b9114.tar.xz |
Fix public room joining by making sure replaces_state never points to itself.
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/_base.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py index e9cf73a8e2..b6f8817b62 100644 --- a/synapse/storage/_base.py +++ b/synapse/storage/_base.py @@ -451,7 +451,8 @@ class SQLBaseStore(object): return events - def _get_event_txn(self, txn, event_id, check_redacted=True): + def _get_event_txn(self, txn, event_id, check_redacted=True, + get_prev_content=True): sql = ( "SELECT json, r.event_id FROM event_json as e " "LEFT JOIN redactions as r ON e.event_id = r.redacts " @@ -487,10 +488,11 @@ class SQLBaseStore(object): if because: ev.unsigned["redacted_because"] = because - if "replaces_state" in ev.unsigned: + if get_prev_content and "replaces_state" in ev.unsigned: ev.unsigned["prev_content"] = self._get_event_txn( txn, ev.unsigned["replaces_state"], + get_prev_content=False, ).get_dict()["content"] return ev |