Description
tcplisten/socket_zos_s390x.go:11-18 leaks the socket file descriptor when FcntlInt fails:
fd, err := unix.Socket(domain, typ, proto) // succeeds
_, err = unix.FcntlInt(...) // overwrites err
_, err = unix.FcntlInt(...) // fails
if err == nil {
return fd, nil
}
return -1, fmt.Errorf(...) // fd leaked, never closed
Impact
- File descriptor leak on z/OS s390x when
FcntlInt fails
- Accumulates over process lifetime on affected platform
Suggested Fix
Close fd before returning the error:
if err != nil {
unix.Close(fd)
return -1, fmt.Errorf(...)
}
File
tcplisten/socket_zos_s390x.go:11-18
Description
tcplisten/socket_zos_s390x.go:11-18leaks the socket file descriptor whenFcntlIntfails:Impact
FcntlIntfailsSuggested Fix
Close
fdbefore returning the error:File
tcplisten/socket_zos_s390x.go:11-18