From 8520108bb2283ff298518fcd6b52f102d2f8bd34 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 3 Sep 2025 12:24:26 -0400 Subject: [PATCH] Limit quote bodies to 2kib on export. --- .../securesms/backup/v2/exporters/ChatItemArchiveExporter.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt index 96e606150d..24a4d4aeff 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt @@ -113,6 +113,7 @@ import org.thoughtcrime.securesms.backup.v2.proto.GiftBadge as BackupGiftBadge private val TAG = Log.tag(ChatItemArchiveExporter::class.java) private val MAX_INLINED_BODY_SIZE = 128.kibiBytes.bytes.toInt() private val MAX_INLINED_BODY_SIZE_WITH_LONG_ATTACHMENT_POINTER = 2.kibiBytes.bytes.toInt() +private val MAX_INLINED_QUOTE_BODY_SIZE = 2.kibiBytes.bytes.toInt() /** * An iterator for chat items with a clever performance twist: rather than do the extra queries one at a time (for reactions, @@ -1081,7 +1082,8 @@ private fun BackupMessageRecord.toRemoteQuote(exportState: ExportState, attachme } val bodyRanges = this.quoteBodyRanges?.toRemoteBodyRanges(dateSent) ?: emptyList() - val body = this.quoteBody?.takeUnless { it.isBlank() }?.let { body -> + val trimmedQuoteBody = StringUtil.trimToFit(this.quoteBody, MAX_INLINED_QUOTE_BODY_SIZE) + val body = trimmedQuoteBody.takeUnless { it.isBlank() }?.let { body -> Text( body = body, bodyRanges = bodyRanges