Currently my_new_memb_list is set in commit_enter, resulting in join messages
being accepted during commit/recovery phases which are not appropriate to
maintain protocol guarantees.

Signed-off-by: Steven Dake <[email protected]>
---
 exec/totemsrp.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/exec/totemsrp.c b/exec/totemsrp.c
index 4a299a0..44623d8 100644
--- a/exec/totemsrp.c
+++ b/exec/totemsrp.c
@@ -1991,6 +1991,11 @@ static void memb_state_recovery_enter (
        log_printf (instance->totemsrp_log_level_debug,
                "entering RECOVERY state.\n");
 
+       memcpy (instance->my_new_memb_list, addr,
+               sizeof (struct srp_addr) * 
instance->commit_token->addr_entries);
+
+       instance->my_new_memb_entries = instance->commit_token->addr_entries;
+
        instance->orf_token_discard = 0;
 
        instance->my_high_ring_delivered = 0;
@@ -2766,11 +2771,6 @@ static void memb_state_commit_token_update (
        addr = (struct srp_addr *)instance->commit_token->end_of_commit_token;
        memb_list = (struct memb_commit_token_memb_entry *)(addr + 
instance->commit_token->addr_entries);
 
-       memcpy (instance->my_new_memb_list, addr,
-               sizeof (struct srp_addr) * 
instance->commit_token->addr_entries);
-
-       instance->my_new_memb_entries = instance->commit_token->addr_entries;
-
        memcpy (&memb_list[instance->commit_token->memb_index].ring_id,
                &instance->my_old_ring_id, sizeof (struct memb_ring_id));
 
-- 
1.7.6

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to