aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexander Yastrebov <yastrebov.alex@gmail.com>2023-09-27 02:01:46 +0000
committerGopher Robot <gobot@golang.org>2023-09-27 13:04:05 +0000
commit1a51b59c119034dfbcd98063bf775d92e6f76db4 (patch)
tree18ad15f2140532859ab22da760b7192684e4a462 /src
parent5152be3959d4aa273932c12da971d14e7f84405d (diff)
downloadgo-1a51b59c119034dfbcd98063bf775d92e6f76db4.tar.xz
internal/zstd: allow empty compressed blocks
For #62513 Change-Id: I295e72f71165665b8ea999e68a5586fa785b546d GitHub-Last-Rev: 902e952d88dba505f87393fd3c97c433ae291709 GitHub-Pull-Request: golang/go#63252 Reviewed-on: https://go-review.googlesource.com/c/go/+/531217 Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/internal/zstd/block.go9
-rw-r--r--src/internal/zstd/zstd_test.go5
2 files changed, 8 insertions, 6 deletions
diff --git a/src/internal/zstd/block.go b/src/internal/zstd/block.go
index cf4c954c7d..8732661fa1 100644
--- a/src/internal/zstd/block.go
+++ b/src/internal/zstd/block.go
@@ -50,10 +50,9 @@ func (r *Reader) compressedBlock(blockSize int) error {
if off < len(data) {
return r.makeError(off, "extraneous data after no sequences")
}
- if len(litbuf) == 0 {
- return r.makeError(off, "no sequences and no literals")
- }
+
r.buffer = append(r.buffer, litbuf...)
+
return nil
}
@@ -374,9 +373,7 @@ func (r *Reader) execSeqs(data block, off int, litbuf []byte, seqCount int) erro
}
}
- if len(litbuf) > 0 {
- r.buffer = append(r.buffer, litbuf...)
- }
+ r.buffer = append(r.buffer, litbuf...)
if rbr.cnt != 0 {
return r.makeError(off, "extraneous data after sequences")
diff --git a/src/internal/zstd/zstd_test.go b/src/internal/zstd/zstd_test.go
index 22af814acf..c2914bb1f4 100644
--- a/src/internal/zstd/zstd_test.go
+++ b/src/internal/zstd/zstd_test.go
@@ -90,6 +90,11 @@ var tests = []struct {
"0\x00\x00\x00\x00\x000\x00\x00\x00\x00\x001\x00\x00\x00\x00\x000000",
"(\xb5/\xfd\x04X\x8d\x00\x00P0\x000\x001\x000000\x03T\x02\x00\x01\x01m\xf9\xb7G",
},
+ {
+ "empty block",
+ "",
+ "\x28\xb5\x2f\xfd\x00\x00\x15\x00\x00\x00\x00",
+ },
}
func TestSamples(t *testing.T) {