From 5c32a099354a056e39668f5f1ed0b76ec5d60a39 Mon Sep 17 00:00:00 2001 From: Ho Date: Fri, 3 Oct 2025 10:04:52 +0900 Subject: [PATCH 1/2] fix compability --- encoding/da.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/encoding/da.go b/encoding/da.go index 572bc9d..b480e88 100644 --- a/encoding/da.go +++ b/encoding/da.go @@ -495,7 +495,16 @@ func checkCompressedDataCompatibilityV7(data []byte) error { // scan each block until done for len(data) > 3 && !isLast { isLast = (data[0] & 1) == 1 - blkSize := (uint(data[2])*65536 + uint(data[1])*256 + uint(data[0])) >> 3 + blkType := (data[0] >> 1) & 3 + var blkSize uint + if blkType == 1 {// RLE Block + blkSize = 1 + } else { + if blkType == 3 { + return fmt.Errorf("encounter reserved block type at %v", data) + } + blkSize = (uint(data[2])*65536 + uint(data[1])*256 + uint(data[0])) >> 3 + } if len(data) < 3+int(blkSize) { return fmt.Errorf("wrong data len {%d}, expect min {%d}", len(data), 3+blkSize) } From 4e9428c3cd82a74b8811e32e9b773e0edce77e77 Mon Sep 17 00:00:00 2001 From: Noel Date: Fri, 3 Oct 2025 10:08:07 +0900 Subject: [PATCH 2/2] fmt --- encoding/da.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/encoding/da.go b/encoding/da.go index b480e88..a9d5e5b 100644 --- a/encoding/da.go +++ b/encoding/da.go @@ -497,13 +497,13 @@ func checkCompressedDataCompatibilityV7(data []byte) error { isLast = (data[0] & 1) == 1 blkType := (data[0] >> 1) & 3 var blkSize uint - if blkType == 1 {// RLE Block + if blkType == 1 { // RLE Block blkSize = 1 } else { if blkType == 3 { return fmt.Errorf("encounter reserved block type at %v", data) } - blkSize = (uint(data[2])*65536 + uint(data[1])*256 + uint(data[0])) >> 3 + blkSize = (uint(data[2])*65536 + uint(data[1])*256 + uint(data[0])) >> 3 } if len(data) < 3+int(blkSize) { return fmt.Errorf("wrong data len {%d}, expect min {%d}", len(data), 3+blkSize)