fixing remaining overflows in BE/LE

This commit is contained in:
Dmitriy Ryajov 2019-10-29 11:02:28 -06:00
parent 541f0f2a41
commit 400218ba01
1 changed files with 6 additions and 6 deletions

View File

@ -196,17 +196,17 @@ proc finish*(pb: var ProtoBuffer) =
pb.offset = pos
elif WithUint32BeLength in pb.options:
let size = uint(len(pb.buffer) - 4)
pb.buffer[0] = byte(size shr 24)
pb.buffer[1] = byte(size shr 16)
pb.buffer[2] = byte(size shr 8)
pb.buffer[0] = byte((size shr 24) and 0xFF)
pb.buffer[1] = byte((size shr 16) and 0xFF)
pb.buffer[2] = byte((size shr 8) and 0xFF)
pb.buffer[3] = byte(size and 0xFF)
pb.offset = 4
elif WithUint32LeLength in pb.options:
let size = uint(len(pb.buffer) - 4)
pb.buffer[0] = byte(size and 0xFF)
pb.buffer[1] = byte(size shr 8)
pb.buffer[2] = byte(size shr 16)
pb.buffer[3] = byte(size shr 24)
pb.buffer[1] = byte((size shr 8) and 0xFF)
pb.buffer[2] = byte((size shr 16) and 0xFF)
pb.buffer[3] = byte((size shr 24) and 0xFF)
pb.offset = 4
else:
pb.offset = 0