if some process locks a block in round 0, then 0 is valid proposal.POLRound in rounds > 0

This condition is really hard to get. Initially, lockedRound and
validRound are set to -1 as we start with round 0.

Refs #2702
This commit is contained in:
Anton Kaliaev
2018-10-25 16:40:20 +02:00
parent bbf15b3d09
commit a67ae81469
2 changed files with 4 additions and 4 deletions

View File

@@ -1425,9 +1425,9 @@ func (cs *ConsensusState) defaultSetProposal(proposal *types.Proposal) error {
return nil
}
// Verify POLRound, which must be -1 or between 0 and proposal.Round exclusive.
if proposal.POLRound != -1 &&
(proposal.POLRound < 0 || proposal.Round <= proposal.POLRound) {
// Verify POLRound, which must be -1 or between 0 inclusive and proposal.Round exclusive.
if proposal.POLRound < -1 ||
(proposal.POLRound >= 0 && proposal.POLRound >= proposal.Round) {
return ErrInvalidProposalPOLRound
}