From 5687925513a621a98549434470941b02943b8691 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 2 Feb 2017 15:10:50 -0500 Subject: [PATCH] Prevent simultaneous incoming and outgoing calls from leaving CallService in a bad state. // FREEBIE --- Signal/src/call/CallService.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index 2e578a8f1..d1460913e 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -230,6 +230,13 @@ protocol CallServiceObserver: class { public func handleOutgoingCall(_ call: SignalCall) -> Promise { AssertIsOnMainThread() + guard self.call == nil else { + let errorDescription = "\(TAG) call was unexpectedly already set." + Logger.error(errorDescription) + call.state = .localFailure + return Promise(error: CallError.assertionError(description: errorDescription)) + } + self.call = call let thread = TSContactThread.getOrCreateThread(contactId: call.remotePhoneNumber)