diff --git a/archive.go b/archive.go index 5756490bf..6ce1292bb 100644 --- a/archive.go +++ b/archive.go @@ -108,7 +108,9 @@ func TarFilter(path string, compression Compression, filter []string) (io.Reader // identity (uncompressed), gzip, bzip2, xz. // FIXME: specify behavior when target path exists vs. doesn't exist. func Untar(archive io.Reader, path string) error { - + if archive == nil { + return fmt.Errorf("Empty archive") + } bufferedArchive := bufio.NewReaderSize(archive, 10) buf, err := bufferedArchive.Peek(10) if err != nil { diff --git a/image.go b/image.go index cd76b8c43..bb6598b26 100644 --- a/image.go +++ b/image.go @@ -92,9 +92,11 @@ func StoreImage(img *Image, layerData Archive, root string, store bool) error { defer file.Close() layerData = file } - - if err := Untar(layerData, layer); err != nil { - return err + // If layerData is not nil, unpack it into the new layer + if layerData != nil { + if err := Untar(layerData, layer); err != nil { + return err + } } return StoreSize(img, root)