diff --git a/src/replication/replicator/replicator-queue.c b/src/replication/replicator/replicator-queue.c index 31f296af68..4e10cf4786 100644 --- a/src/replication/replicator/replicator-queue.c +++ b/src/replication/replicator/replicator-queue.c @@ -321,15 +321,14 @@ replicator_queue_handle_sync_lookups(struct replicator_queue *queue, t_array_init(&callbacks, 8); lookups = array_get_modifiable(&queue->sync_lookups, &count); - for (i = 0; i < count; ) { + for (i = 0; i < count; i++) { if (lookups[i].user != user) - i++; - else if (lookups[i].wait_for_next_push) { + continue; + if (lookups[i].wait_for_next_push) { /* another sync request came while user was being replicated */ i_assert(user->priority == REPLICATION_PRIORITY_SYNC); lookups[i].wait_for_next_push = FALSE; - i++; } else { array_push_back(&callbacks, &lookups[i]); array_delete(&queue->sync_lookups, i, 1);