37 lines
1.0 KiB
Diff
37 lines
1.0 KiB
Diff
From 17e8dac29df8ce00febbd08ee5d8ee922024a003 Mon Sep 17 00:00:00 2001
|
|
From:Miloslav Trmač <mitr@redhat.com>
|
|
Date: Fri, 30 Sep 2022 12:46:21 +0200
|
|
Subject: [PATCH] Consume z.current prepared by Reader.Read in Reader.WriteTo
|
|
|
|
---
|
|
vendor/github.com/klauspost/pgzip/gunzip.go | 13 +++++++++++++
|
|
1 file changed, 13 insertions(+)
|
|
|
|
diff --git a/vendor/github.com/klauspost/pgzip/gunzip.go b/vendor/github.com/klauspost/pgzip/gunzip.go
|
|
index d1ae730..3c4b32f 100644
|
|
--- a/vendor/github.com/klauspost/pgzip/gunzip.go
|
|
+++ b/vendor/github.com/klauspost/pgzip/gunzip.go
|
|
@@ -513,6 +513,19 @@ func (z *Reader) Read(p []byte) (n int, err error) {
|
|
|
|
func (z *Reader) WriteTo(w io.Writer) (n int64, err error) {
|
|
total := int64(0)
|
|
+ avail := z.current[z.roff:]
|
|
+ if len(avail) != 0 {
|
|
+ n, err := w.Write(avail)
|
|
+ if n != len(avail) {
|
|
+ return total, io.ErrShortWrite
|
|
+ }
|
|
+ total += int64(n)
|
|
+ if err != nil {
|
|
+ return total, err
|
|
+ }
|
|
+ z.blockPool <- z.current
|
|
+ z.current = nil
|
|
+ }
|
|
for {
|
|
if z.err != nil {
|
|
return total, z.err
|
|
--
|
|
2.33.0
|
|
|