mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Validate full edit message payload.
This commit is contained in:
committed by
Cody Henthorne
parent
2a3cb80217
commit
7e458bfde0
@@ -61,7 +61,7 @@ object EnvelopeContentValidator {
|
||||
content.typingMessage != null -> validateTypingMessage(envelope, content.typingMessage)
|
||||
content.decryptionErrorMessage != null -> validateDecryptionErrorMessage(content.decryptionErrorMessage.toByteArray())
|
||||
content.storyMessage != null -> validateStoryMessage(content.storyMessage)
|
||||
content.editMessage != null -> validateEditMessage(content.editMessage)
|
||||
content.editMessage != null -> validateEditMessage(envelope, content.editMessage)
|
||||
content.pniSignatureMessage != null -> Result.Valid
|
||||
content.senderKeyDistributionMessage != null -> Result.Valid
|
||||
else -> Result.Invalid("Content is empty!")
|
||||
@@ -182,7 +182,7 @@ object EnvelopeContentValidator {
|
||||
} else if (syncMessage.sent.storyMessageRecipients.isNotEmpty()) {
|
||||
Result.Valid
|
||||
} else if (syncMessage.sent.editMessage != null) {
|
||||
validateEditMessage(syncMessage.sent.editMessage)
|
||||
validateEditMessage(envelope, syncMessage.sent.editMessage)
|
||||
} else {
|
||||
Result.Invalid("[SyncMessage] Empty SyncMessage.sent!")
|
||||
}
|
||||
@@ -281,7 +281,7 @@ object EnvelopeContentValidator {
|
||||
return Result.Valid
|
||||
}
|
||||
|
||||
private fun validateEditMessage(editMessage: EditMessage): Result {
|
||||
private fun validateEditMessage(envelope: Envelope, editMessage: EditMessage): Result {
|
||||
if (editMessage.dataMessage == null) {
|
||||
return Result.Invalid("[EditMessage] No data message present")
|
||||
}
|
||||
@@ -299,23 +299,7 @@ object EnvelopeContentValidator {
|
||||
)
|
||||
}
|
||||
|
||||
if (dataMessage.preview.any { it.image != null && it.image.isPresentAndInvalid() }) {
|
||||
return Result.Invalid("[EditMessage] Invalid AttachmentPointer on DataMessage.previewList.image!")
|
||||
}
|
||||
|
||||
if (dataMessage.bodyRanges.any { it.mentionAci != null && it.mentionAci.isNullOrInvalidAci() }) {
|
||||
return Result.Invalid("[EditMessage] Invalid UUID on body range!")
|
||||
}
|
||||
|
||||
if (dataMessage.attachments.any { it.isNullOrInvalid() }) {
|
||||
return Result.Invalid("[EditMessage] Invalid attachments!")
|
||||
}
|
||||
|
||||
if (dataMessage.groupV2 != null) {
|
||||
validateGroupContextV2(dataMessage.groupV2, "[EditMessage]")?.let { return it }
|
||||
}
|
||||
|
||||
return Result.Valid
|
||||
return validateDataMessage(envelope, dataMessage)
|
||||
}
|
||||
|
||||
private fun AttachmentPointer?.isNullOrInvalid(): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user