From 82c90747c29fa8d3bb2d547f3c7ace972a9fa716 Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Wed, 26 Jul 2017 15:44:38 -0400 Subject: [PATCH] Don't double-free an UnparsedSource github.com/containers/image.FromUnparsedImage() "takes ownership" of the UnparsedImage that we pass to it, so we shouldn't also Close() the UnparsedImage ourselves after we've wrapped it up in an Image object. Since creating an Image is the only thing we do with the UnparsedImage after creating it from a SourceImage, just use the FromSource() function to handle both steps at once. Signed-off-by: Nalin Dahyabhai --- pkg/storage/image.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/storage/image.go b/pkg/storage/image.go index b27565d5..8dec3660 100644 --- a/pkg/storage/image.go +++ b/pkg/storage/image.go @@ -137,10 +137,9 @@ func (svc *imageService) CanPull(imageName string, options *copy.Options) (bool, if err != nil { return false, err } - unparsedImage := image.UnparsedFromSource(rawSource) - defer unparsedImage.Close() - src, err := image.FromUnparsedImage(unparsedImage) + src, err := image.FromSource(rawSource) if err != nil { + rawSource.Close() return false, err } src.Close()