Validate incoming edit message target timestamp
This commit is contained in:
parent
d8a48c67c6
commit
fefbf7e5c3
@ -76,6 +76,11 @@ public class EditMessageStoreImpl: EditMessageStore {
|
||||
authorAci: Aci?,
|
||||
tx: DBReadTransaction
|
||||
) -> EditMessageTarget? {
|
||||
guard SDS.fitsInInt64(timestamp) else {
|
||||
owsFailDebug("Received invalid timestamp!")
|
||||
return nil
|
||||
}
|
||||
|
||||
let transaction = SDSDB.shimOnlyBridge(tx)
|
||||
|
||||
let sql = """
|
||||
|
||||
@ -1594,6 +1594,11 @@ public final class MessageReceiver: Dependencies {
|
||||
transaction tx: SDSAnyWriteTransaction
|
||||
) -> EditProcessingResult {
|
||||
|
||||
guard SDS.fitsInInt64(editMessage.targetSentTimestamp) else {
|
||||
Logger.error("Edit message target was invalid timestamp!")
|
||||
return .invalidEdit
|
||||
}
|
||||
|
||||
guard let transcript = OWSIncomingSentMessageTranscript.from(
|
||||
sentProto: sentMessage,
|
||||
serverTimestamp: decryptedEnvelope.serverTimestamp,
|
||||
@ -1648,13 +1653,18 @@ public final class MessageReceiver: Dependencies {
|
||||
editMessage: SSKProtoEditMessage,
|
||||
tx: SDSAnyWriteTransaction
|
||||
) -> EditProcessingResult {
|
||||
let decryptedEnvelope = request.decryptedEnvelope
|
||||
guard SDS.fitsInInt64(editMessage.targetSentTimestamp) else {
|
||||
Logger.error("Edit message target was invalid timestamp!")
|
||||
return .invalidEdit
|
||||
}
|
||||
|
||||
guard let dataMessage = editMessage.dataMessage else {
|
||||
Logger.warn("Missing edit message data.")
|
||||
return .invalidEdit
|
||||
}
|
||||
|
||||
let decryptedEnvelope = request.decryptedEnvelope
|
||||
|
||||
guard let thread = preprocessDataMessage(dataMessage, envelope: decryptedEnvelope, tx: tx) else {
|
||||
Logger.warn("Missing edit message thread.")
|
||||
return .invalidEdit
|
||||
|
||||
Loading…
Reference in New Issue
Block a user