diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2022-09-08 15:55:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-08 15:55:03 +0100 |
commit | 89e8b98b6522dc9fafd5c32efe7a84dc9a31246a (patch) | |
tree | c23b50be6a64281e78c2adbcdc8cf178474f18e3 /synapse/storage | |
parent | Fix error in `is_mine_id` when encountering a malformed ID (#13746) (diff) | |
download | synapse-89e8b98b6522dc9fafd5c32efe7a84dc9a31246a.tar.xz |
Avoid raising errors due to malformed IDs in `get_current_hosts_in_room` (#13748)
Handle malformed user IDs with no colons in `get_current_hosts_in_room`. It's not currently possible for a malformed user ID to join a room, so this error would never be hit. Signed-off-by: Sean Quah <seanq@matrix.org>
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/databases/main/roommember.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/synapse/storage/databases/main/roommember.py b/synapse/storage/databases/main/roommember.py index a77e49dc66..e6b87010a9 100644 --- a/synapse/storage/databases/main/roommember.py +++ b/synapse/storage/databases/main/roommember.py @@ -1044,6 +1044,8 @@ class RoomMemberWorkerStore(EventsWorkerStore): # We use a `Set` just for fast lookups domain_set: Set[str] = set() for u in users: + if ":" not in u: + continue domain = get_domain_from_id(u) if domain not in domain_set: domain_set.add(domain) @@ -1077,7 +1079,8 @@ class RoomMemberWorkerStore(EventsWorkerStore): ORDER BY min(e.depth) ASC; """ txn.execute(sql, (room_id,)) - return [d for d, in txn] + # `server_domain` will be `NULL` for malformed MXIDs with no colons. + return [d for d, in txn if d is not None] return await self.db_pool.runInteraction( "get_current_hosts_in_room", get_current_hosts_in_room_txn |