consensus: add some more checks to vote counting (#7253)

This commit is contained in:
Callum Waters
2021-11-09 10:51:19 +01:00
committed by GitHub
parent 1e701ed9b5
commit b3b90f820c
2 changed files with 10 additions and 1 deletions

View File

@@ -193,7 +193,10 @@ func (ps *PeerState) PickVoteToSend(votes types.VoteSetReader) (*types.Vote, boo
}
if index, ok := votes.BitArray().Sub(psVotes).PickRandom(); ok {
return votes.GetByIndex(int32(index)), true
vote := votes.GetByIndex(int32(index))
if vote != nil {
return vote, true
}
}
return nil, false
@@ -358,6 +361,9 @@ func (ps *PeerState) BlockPartsSent() int {
// SetHasVote sets the given vote as known by the peer
func (ps *PeerState) SetHasVote(vote *types.Vote) {
if vote == nil {
return
}
ps.mtx.Lock()
defer ps.mtx.Unlock()

View File

@@ -372,6 +372,9 @@ func (voteSet *VoteSet) GetByIndex(valIndex int32) *Vote {
}
voteSet.mtx.Lock()
defer voteSet.mtx.Unlock()
if int(valIndex) >= len(voteSet.votes) {
return nil
}
return voteSet.votes[valIndex]
}