From f9e797783accda0b01b6d1083eb174b203e23c28 Mon Sep 17 00:00:00 2001
From: Michael Eischer <eischer@cs.fau.de>
Date: Fri, 3 Jul 2020 19:13:02 +0200
Subject: [PATCH] Enforce that the client stage only accepts config
 notifications for its group

---
 src/refit/replica/client/REFITClientStage.java | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/refit/replica/client/REFITClientStage.java b/src/refit/replica/client/REFITClientStage.java
index a29fbb2..8e2f5be 100644
--- a/src/refit/replica/client/REFITClientStage.java
+++ b/src/refit/replica/client/REFITClientStage.java
@@ -212,6 +212,10 @@ public class REFITClientStage extends REFITStage {
 		case CONFIGURATION_NOTIFICATION:
 			REFITConfigurationNotification notification = (REFITConfigurationNotification) instruction;
 			int limitedGroupID = Math.max(0, groupID);
+			if (limitedGroupID != notification.groupID) {
+				throw new InternalError("Got configuration for unexpected group " + notification.groupID);
+			}
+
 			REFITOrderProtocol protocol = notification.protocol;
 			sendReplies = protocol.getActiveOrderRecipients(limitedGroupID)[replica.id];
 			contactReplica = REFITOrderGroups.getGroupPrimary(notification.groupID, notification.viewID);
-- 
GitLab