mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-17 15:11:21 +00:00
common: NewBitArray never crashes on negatives (#170)
Fixes #169 Fixes https://github.com/tendermint/tendermint/issues/1322 The previous code was very trusting assuming that rational actors will use this code. However, Byzantine actors don't care and in the case of the linked issue negative lengths can be sent to this code unfettered having been received from a peer. This code is essentially just a sign change from `==` to `<=` and we've gutted out that attack by being more defensive.
This commit is contained in:
committed by
Anton Kaliaev
parent
b0e0dc5de3
commit
b1c9b82531
@ -208,3 +208,10 @@ func TestUpdateNeverPanics(t *testing.T) {
|
||||
b.Update(a)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewBitArrayNeverCrashesOnNegatives(t *testing.T) {
|
||||
bitList := []int{-127, -128, -1<<31}
|
||||
for _, bits := range bitList {
|
||||
_ = NewBitArray(bits)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user