Make sure prev_ids defaults to empty list (#12829)

Signed-off-by: Carl Bordum Hansen <carl@bordum.dk>
This commit is contained in:
Carl Bordum Hansen
2022-05-25 09:14:45 +00:00
committed by GitHub
parent 298911555c
commit 774ac4930d
2 changed files with 5 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
Fix a bug where we did not correctly handle invalid device list updates over federation. Contributed by Carl Bordum Hansen.
+4
View File
@@ -763,6 +763,10 @@ class DeviceListUpdater:
device_id = edu_content.pop("device_id")
stream_id = str(edu_content.pop("stream_id")) # They may come as ints
prev_ids = edu_content.pop("prev_id", [])
if not isinstance(prev_ids, list):
raise SynapseError(
400, "Device list update had an invalid 'prev_ids' field"
)
prev_ids = [str(p) for p in prev_ids] # They may come as ints
if get_domain_from_id(user_id) != origin: