diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java index 7b030b9ca..c48b807d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java @@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.notifications.profiles.NotificationProfiles; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.webrtc.state.WebRtcServiceState; +import org.thoughtcrime.securesms.util.FeatureFlags; import org.whispersystems.signalservice.api.messages.calls.OfferMessage; import java.util.UUID; @@ -94,6 +95,12 @@ public class IdleActionProcessor extends WebRtcActionProcessor { { Log.i(TAG, "handleGroupCallRingUpdate(): recipient: " + remotePeerGroup.getId() + " ring: " + ringId + " update: " + ringUpdate); + int groupSize = remotePeerGroup.getRecipient().getParticipantIds().size(); + if (groupSize > FeatureFlags.maxGroupCallRingSize()) { + Log.w(TAG, "Received ring request for large group, dropping. size: " + groupSize + " max: " + FeatureFlags.maxGroupCallRingSize()); + return currentState; + } + if (ringUpdate != CallManager.RingUpdate.REQUESTED) { SignalDatabase.groupCallRings().insertOrUpdateGroupRing(ringId, System.currentTimeMillis(), ringUpdate); return currentState;