From 0a3180df6c083b3a6dba83bb1f9fdf0758d7e391 Mon Sep 17 00:00:00 2001 From: Stephen J Day Date: Tue, 29 Nov 2016 13:08:24 -0800 Subject: [PATCH] tarexport: check symlink error when saving layer Signed-off-by: Stephen J Day Upstream-commit: 8616b0690a3ac905fc6ee06ff7524c837fcb8c92 Component: engine --- components/engine/image/tarexport/save.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/engine/image/tarexport/save.go b/components/engine/image/tarexport/save.go index cd5c82dc10..fc03cfbcb5 100644 --- a/components/engine/image/tarexport/save.go +++ b/components/engine/image/tarexport/save.go @@ -17,6 +17,7 @@ import ( "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/system" "github.com/docker/docker/reference" + "github.com/pkg/errors" ) type imageDescriptor struct { @@ -313,7 +314,9 @@ func (s *saveSession) saveLayer(id layer.ChainID, legacyImg image.V1Image, creat if err != nil { return distribution.Descriptor{}, err } - os.Symlink(relPath, layerPath) + if err := os.Symlink(relPath, layerPath); err != nil { + return distribution.Descriptor{}, errors.Wrap(err, "error creating symlink while saving layer") + } } else { // Use system.CreateSequential rather than os.Create. This ensures sequential // file access on Windows to avoid eating into MM standby list.