diff --git a/roaring/roaring.go b/roaring/roaring.go index 8930981e0..5437bba83 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -3963,6 +3963,9 @@ func (op *op) UnmarshalBinary(data []byte) error { _, _ = h.Write(data[0:9]) if op.typ > 1 { + if 1152921504606847000 < int(op.value) { + return fmt.Errorf("too big") + } if len(data) < int(13+op.value*8) { return fmt.Errorf("op data truncated - expected %d, got %d", 13+op.value*8, len(data)) }