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 <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano 2021-12-22 14:33:33 +01:00
parent 1f91974b86
commit 10ed9d2168
1 changed files with 3 additions and 9 deletions

View File

@ -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()
}