Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions conn/bind_std.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ func listenNet(network string, port int) (*net.UDPConn, int, error) {
laddr.String(),
)
if err != nil {
conn.Close()
return nil, 0, err
}
return conn.(*net.UDPConn), uaddr.Port, nil
Expand Down
4 changes: 4 additions & 0 deletions ipc/uapi_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ func UAPIListen(name string, file *os.File) (net.Listener, error) {

uapi.inotifyFd, err = unix.InotifyInit()
if err != nil {
listener.Close()
return nil, err
}

Expand All @@ -86,11 +87,14 @@ func UAPIListen(name string, file *os.File) (net.Listener, error) {
)

if err != nil {
listener.Close()
unix.Close(uapi.inotifyFd)
return nil, err
}

uapi.inotifyRWCancel, err = rwcancel.NewRWCancel(uapi.inotifyFd)
if err != nil {
listener.Close()
unix.Close(uapi.inotifyFd)
return nil, err
}
Expand Down
17 changes: 14 additions & 3 deletions ipc/uapi_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,17 @@ func UAPIOpen(name string) (*os.File, error) {

listener, err := net.ListenUnix("unix", addr)
if err == nil {
return listener.File()
file, err := listener.File()
if err != nil {
listener.Close()
return nil, err
}
return file, nil
}

// Test socket, if not in use cleanup and try again.
if _, err := net.Dial("unix", socketPath); err == nil {
if conn, err := net.Dial("unix", socketPath); err == nil {
conn.Close()
return nil, errors.New("unix socket in use")
}
if err := os.Remove(socketPath); err != nil {
Expand All @@ -62,5 +68,10 @@ func UAPIOpen(name string) (*os.File, error) {
if err != nil {
return nil, err
}
return listener.File()
file, err := listener.File()
if err != nil {
listener.Close()
return nil, err
}
return file, nil
}