Skip to content

Commit d147fe0

Browse files
authored
Merge pull request moby#38413 from slp/master
layer/layer_store: ensure NewInputTarStream resources are released
2 parents 2cb26cf + 5846db1 commit d147fe0

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

layer/layer_store.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,13 +253,14 @@ func (ls *layerStore) applyTar(tx *fileMetadataTransaction, ts io.Reader, parent
253253
}
254254

255255
applySize, err := ls.driver.ApplyDiff(layer.cacheID, parent, rdr)
256+
// discard trailing data but ensure metadata is picked up to reconstruct stream
257+
// unconditionally call io.Copy here before checking err to ensure the resources
258+
// allocated by NewInputTarStream above are always released
259+
io.Copy(ioutil.Discard, rdr) // ignore error as reader may be closed
256260
if err != nil {
257261
return err
258262
}
259263

260-
// Discard trailing data but ensure metadata is picked up to reconstruct stream
261-
io.Copy(ioutil.Discard, rdr) // ignore error as reader may be closed
262-
263264
layer.size = applySize
264265
layer.diffID = DiffID(digester.Digest())
265266

0 commit comments

Comments
 (0)