Skip to content

Commit db7a198

Browse files
committed
BACKPORT: layer/layer_store: ensure NewInputTarStream resources are released
Upstream reference: moby@d147fe0 Fixes BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1661443 Signed-off-by: Sergio Lopez <slp@redhat.com>
1 parent f56c649 commit db7a198

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

layer/layer_store.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,14 @@ func (ls *layerStore) applyTar(tx MetadataTransaction, ts io.Reader, parent stri
222222
}
223223

224224
applySize, err := ls.driver.ApplyDiff(layer.cacheID, parent, rdr)
225+
// discard trailing data but ensure metadata is picked up to reconstruct stream
226+
// unconditionally call io.Copy here before checking err to ensure the resources
227+
// allocated by NewInputTarStream above are always released
228+
io.Copy(ioutil.Discard, rdr) // ignore error as reader may be closed
225229
if err != nil {
226230
return err
227231
}
228232

229-
// Discard trailing data but ensure metadata is picked up to reconstruct stream
230-
io.Copy(ioutil.Discard, rdr) // ignore error as reader may be closed
231-
232233
layer.size = applySize
233234
layer.diffID = DiffID(digester.Digest())
234235

0 commit comments

Comments
 (0)