diff --git a/zstd/blockenc.go b/zstd/blockenc.go index 966897c1fa..fd4a36f730 100644 --- a/zstd/blockenc.go +++ b/zstd/blockenc.go @@ -782,7 +782,8 @@ func (b *blockEnc) encode(org []byte, raw, rawAllLits bool) error { // Maybe even add a bigger margin. if len(b.output)-3-bhOffset >= b.size { // Discard and encode as raw block. - b.encodeRaw(org) + b.output = b.encodeRawTo(b.output[:bhOffset], org) + b.popOffsets() b.litEnc.Reuse = huff0.ReusePolicyNone return nil } diff --git a/zstd/testdata/fuzz/encode-corpus-encoded.zip b/zstd/testdata/fuzz/encode-corpus-encoded.zip index aa75c2d328..87bbb78a70 100644 Binary files a/zstd/testdata/fuzz/encode-corpus-encoded.zip and b/zstd/testdata/fuzz/encode-corpus-encoded.zip differ