overlay2: close read end of pipe on mount exec

Use StdinPipe to ensure pipe is properly closed after startup

Fixes #23686

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: ad4b3e11fe41080d66ac1780b455246ae18bdc35
Component: engine
This commit is contained in:
Derek McGowan
2016-06-28 13:23:00 -07:00
parent a556d4c8c6
commit 860c6cce0c
@@ -32,12 +32,6 @@ type mountOptions struct {
}
func mountFrom(dir, device, target, mType, label string) error {
r, w, err := os.Pipe()
if err != nil {
return fmt.Errorf("mountfrom pipe failure: %v", err)
}
options := &mountOptions{
Device: device,
Target: target,
@@ -47,7 +41,10 @@ func mountFrom(dir, device, target, mType, label string) error {
}
cmd := reexec.Command("docker-mountfrom", dir)
cmd.Stdin = r
w, err := cmd.StdinPipe()
if err != nil {
return fmt.Errorf("mountfrom error on pipe creation: %v", err)
}
output := bytes.NewBuffer(nil)
cmd.Stdout = output