From 3c5d62dbc3129dcbb1d0d722c81d22613171840c Mon Sep 17 00:00:00 2001 From: Larry Ruane Date: Mon, 23 Sep 2019 15:08:02 -0600 Subject: [PATCH] fix compact size length calculation --- parser/block_header.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/parser/block_header.go b/parser/block_header.go index e2c47a1..94fa7b4 100644 --- a/parser/block_header.go +++ b/parser/block_header.go @@ -66,9 +66,9 @@ func CompactLengthPrefixedLen(val []byte) int { length := len(val) if length < 253 { return 1 + length - } else if length < 0xffff { + } else if length <= 0xffff { return 1 + 2 + length - } else if length < 0xffff { + } else if length <= 0xffffffff { return 1 + 4 + length } else { return 1 + 8 + length @@ -80,11 +80,11 @@ func WriteCompactLengthPrefixed(buf *bytes.Buffer, val []byte) error { if length < 253 { binary.Write(buf, binary.LittleEndian, uint8(length)) binary.Write(buf, binary.LittleEndian, val) - } else if length < 0xffff { + } else if length <= 0xffff { binary.Write(buf, binary.LittleEndian, byte(253)) binary.Write(buf, binary.LittleEndian, uint16(length)) binary.Write(buf, binary.LittleEndian, val) - } else if length < 0xffff { + } else if length <= 0xffffffff { binary.Write(buf, binary.LittleEndian, byte(254)) binary.Write(buf, binary.LittleEndian, uint32(length)) binary.Write(buf, binary.LittleEndian, val)