From e08f35b5d018d50622ab5bef481df2c89e0d28d9 Mon Sep 17 00:00:00 2001 From: Sorunome Date: Thu, 10 Sep 2020 11:10:38 +0200 Subject: [PATCH] fix: Don't trust the info block of events --- lib/src/event.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/src/event.dart b/lib/src/event.dart index 29dfb7b..d369534 100644 --- a/lib/src/event.dart +++ b/lib/src/event.dart @@ -406,7 +406,7 @@ class Event extends MatrixEvent { // Is this file storeable? final infoMap = getThumbnail ? content['info']['thumbnail_info'] : content['info']; - final storeable = room.client.database != null && + var storeable = room.client.database != null && infoMap is Map && infoMap['size'] is int && infoMap['size'] <= room.client.database.maxFileSize; @@ -422,6 +422,8 @@ class Event extends MatrixEvent { }; uint8list = await downloadCallback(mxContent.getDownloadLink(room.client)); + storeable = storeable && + uint8list.lengthInBytes < room.client.database.maxFileSize; if (storeable) { await room.client.database .storeFile(mxContent.toString(), uint8list, DateTime.now());