From fc183ccdd96531b279662db28ecc0cae38884892 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) --- unix.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unix.go b/unix.go index 79057ba9d6..12cfbcbe9f 100644 --- a/unix.go +++ b/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