From 20999d70e555c9afb91dc6db9d6f130ee0d920f4 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Wed, 19 Mar 2025 09:36:03 +0530 Subject: [PATCH] Limit received MMS message length to 5000 This is to avoid ANRs just in case there are very large text messages in the system (either added on purpose or sent by someone else to trigger ANRs in the user's device) --- .../main/kotlin/org/fossify/messages/extensions/Context.kt | 6 +++++- .../main/kotlin/org/fossify/messages/helpers/Constants.kt | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt b/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt index d254c5ca..ca4d75f7 100644 --- a/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt +++ b/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt @@ -54,6 +54,7 @@ import org.fossify.messages.databases.MessagesDatabase import org.fossify.messages.helpers.AttachmentUtils.parseAttachmentNames import org.fossify.messages.helpers.Config import org.fossify.messages.helpers.FILE_SIZE_NONE +import org.fossify.messages.helpers.MAX_MESSAGE_LENGTH import org.fossify.messages.helpers.MESSAGES_LIMIT import org.fossify.messages.helpers.NotificationHelper import org.fossify.messages.helpers.generateRandomId @@ -476,7 +477,10 @@ fun Context.getMmsAttachment(id: Long, getImageResolutions: Boolean): MessageAtt val partId = cursor.getLongValue(Mms._ID) val mimetype = cursor.getStringValue(Mms.Part.CONTENT_TYPE) if (mimetype == "text/plain") { - messageAttachment.text = cursor.getStringValue(Mms.Part.TEXT) ?: "" + messageAttachment.text = cursor + .getStringValue(Mms.Part.TEXT) + ?.take(MAX_MESSAGE_LENGTH) + .orEmpty() } else if (mimetype.startsWith("image/") || mimetype.startsWith("video/")) { val fileUri = Uri.withAppendedPath(uri, partId.toString()) var width = 0 diff --git a/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt index 75a0082f..3e673d1b 100644 --- a/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt @@ -79,6 +79,7 @@ const val FILE_SIZE_1_MB = 1_048_576L const val FILE_SIZE_2_MB = 2_097_152L const val MESSAGES_LIMIT = 30 +const val MAX_MESSAGE_LENGTH = 5000 // intent launch request codes const val PICK_PHOTO_INTENT = 42