From b07dcb72fbe5bfbecc240c3b070ced606f1c5f28 Mon Sep 17 00:00:00 2001 From: Shukui Yang Date: Tue, 19 Sep 2017 01:25:39 +0000 Subject: [PATCH] Close pipe if mountFrom failed. Signed-off-by: Shukui Yang Upstream-commit: 9f38923901352459bb621d0b3587a6517e67eeb3 Component: engine --- components/engine/daemon/graphdriver/overlay2/mount.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/engine/daemon/graphdriver/overlay2/mount.go b/components/engine/daemon/graphdriver/overlay2/mount.go index 77bff06621..e59178c669 100644 --- a/components/engine/daemon/graphdriver/overlay2/mount.go +++ b/components/engine/daemon/graphdriver/overlay2/mount.go @@ -49,18 +49,19 @@ func mountFrom(dir, device, target, mType string, flags uintptr, label string) e output := bytes.NewBuffer(nil) cmd.Stdout = output cmd.Stderr = output - if err := cmd.Start(); err != nil { + w.Close() return fmt.Errorf("mountfrom error on re-exec cmd: %v", err) } //write the options to the pipe for the untar exec to read if err := json.NewEncoder(w).Encode(options); err != nil { + w.Close() return fmt.Errorf("mountfrom json encode to pipe failed: %v", err) } w.Close() if err := cmd.Wait(); err != nil { - return fmt.Errorf("mountfrom re-exec error: %v: output: %s", err, output) + return fmt.Errorf("mountfrom re-exec error: %v: output: %v", err, output) } return nil }