From ecda533559da3651c3d2746b34bcef53422147f5 Mon Sep 17 00:00:00 2001 From: Ayush Ranjan Date: Fri, 9 Sep 2022 11:04:26 -0700 Subject: [PATCH] Cleanup socket in lisafs gofer's BindAt handler on error paths. Otherwise, we leak will leak the un-closed FD. PiperOrigin-RevId: 473294586 --- runsc/fsgofer/lisafs.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runsc/fsgofer/lisafs.go b/runsc/fsgofer/lisafs.go index 5767dba2c..42c749836 100644 --- a/runsc/fsgofer/lisafs.go +++ b/runsc/fsgofer/lisafs.go @@ -690,12 +690,14 @@ func (fd *controlFDLisa) BindAt(name string, sockType uint32) (*lisafs.ControlFD return nil, linux.Statx{}, nil, -1, err } if err := unix.Bind(sockFD, &unix.SockaddrUnix{Name: socketPath}); err != nil { + _ = unix.Close(sockFD) return nil, linux.Statx{}, nil, -1, err } // Stat the socket. sockStat, err := fstatTo(sockFD) if err != nil { + _ = unix.Close(sockFD) _ = unix.Unlink(socketPath) return nil, linux.Statx{}, nil, -1, err }