diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-02-09 10:56:02 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-09 15:56:02 +0000 |
commit | 8a6e0434889ea94893119775b6f56904cbc575c2 (patch) | |
tree | 20df6f76f427b1c3310177b83b86f915b0dc038c | |
parent | Add final type hint to synapse.server. (#15035) (diff) | |
download | synapse-8a6e0434889ea94893119775b6f56904cbc575c2.tar.xz |
Avoid mutating cached room aliases. (#15038)
This might cause incorrect data in other callers which are not expecting the canonical alias to be added into the response.
-rw-r--r-- | changelog.d/15038.bugfix | 1 | ||||
-rw-r--r-- | synapse/handlers/directory.py | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/changelog.d/15038.bugfix b/changelog.d/15038.bugfix new file mode 100644 index 0000000000..4695a09756 --- /dev/null +++ b/changelog.d/15038.bugfix @@ -0,0 +1 @@ +Fix a long-standing bug where the room aliases returned could be corrupted. diff --git a/synapse/handlers/directory.py b/synapse/handlers/directory.py index 2ea52257cb..d31b0fbb17 100644 --- a/synapse/handlers/directory.py +++ b/synapse/handlers/directory.py @@ -485,7 +485,8 @@ class DirectoryHandler: ) ) if canonical_alias: - room_aliases.append(canonical_alias) + # Ensure we do not mutate room_aliases. + room_aliases = room_aliases + [canonical_alias] if not self.config.roomdirectory.is_publishing_room_allowed( user_id, room_id, room_aliases |