Skip to content

Commit a1d3838

Browse files
committed
Also ignore null bytes in tombstone room IDs
1 parent 7e84e7c commit a1d3838

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

synapse/storage/databases/main/events.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2009,7 +2009,12 @@ def _get_sliding_sync_insert_values_from_state_map(
20092009
EventContentFields.TOMBSTONE_SUCCESSOR_ROOM
20102010
)
20112011
# Scrutinize JSON values
2012-
if successor_room_id is None or isinstance(successor_room_id, str):
2012+
if successor_room_id is None or (
2013+
isinstance(successor_room_id, str)
2014+
# We ignore values with null bytes as Postgres doesn't allow them in
2015+
# text columns.
2016+
and "\0" not in room_name
2017+
):
20132018
sliding_sync_insert_map["tombstone_successor_room_id"] = (
20142019
successor_room_id
20152020
)
@@ -2121,6 +2126,12 @@ def _get_sliding_sync_insert_values_from_stripped_state(
21212126
else None
21222127
)
21232128

2129+
if (
2130+
sliding_sync_insert_map["tombstone_successor_room_id"] is not None
2131+
and "\0" in sliding_sync_insert_map["tombstone_successor_room_id"]
2132+
):
2133+
sliding_sync_insert_map.pop("tombstone_successor_room_id")
2134+
21242135
else:
21252136
# No stripped state provided
21262137
sliding_sync_insert_map["has_known_state"] = False

0 commit comments

Comments
 (0)