From dce078f3aef55c25355e1321f25c9e93ae352b83 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Wed, 22 Dec 2021 14:33:33 +0100 Subject: [PATCH] chunked: move discard call to outer scope it solves a problem where the discard could be performed before the compression handler was closed (through a deferred call). Signed-off-by: Giuseppe Scrivano --- pkg/chunked/storage_linux.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/pkg/chunked/storage_linux.go b/pkg/chunked/storage_linux.go index dd67d0a1f..167591abd 100644 --- a/pkg/chunked/storage_linux.go +++ b/pkg/chunked/storage_linux.go @@ -795,9 +795,6 @@ func (c *chunkedDiffer) appendCompressedStreamToFile(compression compressedFileT if _, err := io.Copy(destFile.to, io.LimitReader(z, size)); err != nil { return err } - if _, err := io.Copy(ioutil.Discard, reader); err != nil { - return err - } case fileTypeEstargz: if c.gzipReader == nil { r, err := pgzip.NewReader(reader) @@ -815,17 +812,11 @@ func (c *chunkedDiffer) appendCompressedStreamToFile(compression compressedFileT if _, err := io.Copy(destFile.to, io.LimitReader(c.gzipReader, size)); err != nil { return err } - if _, err := io.Copy(ioutil.Discard, reader); err != nil { - return err - } case fileTypeNoCompression: _, err := io.Copy(destFile.to, io.LimitReader(reader, size)) if err != nil { return err } - if _, err := io.Copy(ioutil.Discard, reader); err != nil { - return err - } default: return fmt.Errorf("unknown file type %q", c.fileType) } @@ -939,6 +930,9 @@ func (c *chunkedDiffer) storeMissingFiles(streams chan io.ReadCloser, errs chan part.Close() return err } + if _, err := io.Copy(ioutil.Discard, limitReader); err != nil { + return err + } } part.Close() }