Fix integer overflow when calculating zeroing range in zeroObject

Lists can have up to 29 bits of elements. We multiply that by a constant of 8 (Bytes per word), so basically any element size can cause on overflow.
This commit is contained in:
Martin Dindoffer 2022-05-06 15:19:54 +02:00 committed by Vaci
parent 58c906f555
commit 04d0692c64

View file

@ -256,9 +256,9 @@ final class WireHelpers {
case ElementSize.TWO_BYTES: case ElementSize.TWO_BYTES:
case ElementSize.FOUR_BYTES: case ElementSize.FOUR_BYTES:
case ElementSize.EIGHT_BYTES: { case ElementSize.EIGHT_BYTES: {
memset(segment.buffer, ptr * Constants.BYTES_PER_WORD, (byte)0, memset(segment.buffer, ptr * Constants.BYTES_PER_WORD, (byte) 0,
roundBitsUpToWords( roundBitsUpToWords(
ListPointer.elementCount(tag) * (long) ListPointer.elementCount(tag) *
ElementSize.dataBitsPerElement(ListPointer.elementSize(tag))) * Constants.BYTES_PER_WORD); ElementSize.dataBitsPerElement(ListPointer.elementSize(tag))) * Constants.BYTES_PER_WORD);
break; break;
} }