From bb08f36e5ed10875d9edcef6c3246250a3a42a33 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Tue, 25 Mar 2014 10:00:51 -0700 Subject: [PATCH] beam: fix FD leaks in SendPipe This fixes file descriptor leaks in the SendPipe function. Docker-DCO-1.1-Signed-off-by: Solomon Hykes (github: shykes) Upstream-commit: bcd31405cffba0334c2a71c2be908aa8299400ae Component: engine --- components/engine/pkg/beam/unix.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/engine/pkg/beam/unix.go b/components/engine/pkg/beam/unix.go index 79057ba9d6..12cfbcbe9f 100644 --- a/components/engine/pkg/beam/unix.go +++ b/components/engine/pkg/beam/unix.go @@ -120,6 +120,7 @@ func SendPipe(conn *net.UnixConn, data []byte) (endpoint *net.UnixConn, err erro if err != nil { return nil, err } + local.Close() if err := Send(conn, data, remote); err != nil { return nil, err } @@ -198,16 +199,15 @@ func USocketPair() (*net.UnixConn, *net.UnixConn, error) { if err != nil { return nil, nil, err } + defer a.Close() + defer b.Close() uA, err := FdConn(int(a.Fd())) if err != nil { - a.Close() - b.Close() return nil, nil, err } uB, err := FdConn(int(b.Fd())) if err != nil { - a.Close() - b.Close() + uA.Close() return nil, nil, err } return uA, uB, nil