From 6100111b3b556a662eef0369e852010444302757 Mon Sep 17 00:00:00 2001 From: Harris Date: Fri, 19 Nov 2021 16:09:11 +1100 Subject: [PATCH] refactor: discard offer messages from non-matching pre-offers we are already expecting --- .../thoughtcrime/securesms/service/WebRtcCallService.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt index ad0c6a70ee..ed80a84dc3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt @@ -325,6 +325,13 @@ class WebRtcCallService: Service(), PeerConnection.Observer { val callId = getCallId(intent) val recipient = getRemoteRecipient(intent) + val preOffer = callManager.preOfferCallData + + if (callManager.isPreOffer() && (preOffer == null || preOffer.callId != callId || preOffer.recipient != recipient)) { + Log.d(TAG, "Incoming ring from non-matching pre-offer") + return + } + val offer = intent.getStringExtra(EXTRA_REMOTE_DESCRIPTION) ?: return val timestamp = intent.getLongExtra(EXTRA_TIMESTAMP, -1) setCallInProgressNotification(TYPE_INCOMING_RINGING, recipient)