summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorAndrew Morgan <1342360+anoadragon453@users.noreply.github.com>2020-09-23 15:58:20 +0100
committerGitHub <noreply@github.com>2020-09-23 15:58:20 +0100
commit4bb203ea4fba54c0de300be84cfd9b38793fad81 (patch)
treec7f4371815c1ab895e4d3c2a68a0f685d51d1478 /synapse
parentDo not check lint/test dependencies at runtime. (#8377) (diff)
parentChangelog (diff)
downloadsynapse-4bb203ea4fba54c0de300be84cfd9b38793fad81.tar.xz
Fix missing null character check on guest_access room state (#8373)
When updating the `room_stats_state` table, we try to check for null bytes slipping in to the content for state events. It turns out we had added `guest_access` as a field to room_stats_state without including it in the null byte check.

Lo and behold, a null byte in a `m.room.guest_access` event then breaks `room_stats_state` updates.

This PR adds the check for `guest_access`.
Diffstat (limited to 'synapse')
-rw-r--r--synapse/storage/databases/main/stats.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/synapse/storage/databases/main/stats.py b/synapse/storage/databases/main/stats.py
index d7816a8606..5beb302be3 100644
--- a/synapse/storage/databases/main/stats.py
+++ b/synapse/storage/databases/main/stats.py
@@ -210,6 +210,7 @@ class StatsStore(StateDeltasStore):
         * topic
         * avatar
         * canonical_alias
+        * guest_access
 
         A is_federatable key can also be included with a boolean value.
 
@@ -234,6 +235,7 @@ class StatsStore(StateDeltasStore):
             "topic",
             "avatar",
             "canonical_alias",
+            "guest_access",
         ):
             field = fields.get(col, sentinel)
             if field is not sentinel and (not isinstance(field, str) or "\0" in field):