aboutsummaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorCarlos Amedee <carlos@golang.org>2026-01-21 15:45:40 -0500
committerCarlos Amedee <carlos@golang.org>2026-01-21 15:56:01 -0500
commiteec3c0ca956803db8a90dfd92ce4ebffebdaf9b4 (patch)
tree14ed37a5aa0fd9e80b547fd43086b2b137457726 /src/net
parent4606a931d2b099f2c5e5619b797352607ee42225 (diff)
parent2baa1d17628bb2f09757617382b1e61f1f9f0ddd (diff)
downloadgo-eec3c0ca956803db8a90dfd92ce4ebffebdaf9b4.tar.xz
[release-branch.go1.26] all: merge master (2baa1d1) into release-branch.go1.26
For #76474. Change-Id: Ic50e288f99b731b62af9aa73ce6721f0f2f3596d
Diffstat (limited to 'src/net')
-rw-r--r--src/net/fd_windows.go2
-rw-r--r--src/net/file_posix.go6
-rw-r--r--src/net/file_windows.go2
-rw-r--r--src/net/unixsock_test.go20
4 files changed, 21 insertions, 9 deletions
diff --git a/src/net/fd_windows.go b/src/net/fd_windows.go
index 52985be8e6..c28ce045c4 100644
--- a/src/net/fd_windows.go
+++ b/src/net/fd_windows.go
@@ -248,7 +248,7 @@ func (fd *netFD) dup() (*os.File, error) {
err := fd.pfd.RawControl(func(fd uintptr) {
h, syserr = dupSocket(syscall.Handle(fd))
})
- if err != nil {
+ if err == nil {
err = syserr
}
if err != nil {
diff --git a/src/net/file_posix.go b/src/net/file_posix.go
index 132d03e9e3..b28ff5845d 100644
--- a/src/net/file_posix.go
+++ b/src/net/file_posix.go
@@ -23,7 +23,11 @@ func newFileFD(f *os.File) (*netFD, error) {
poll.CloseFunc(s)
return nil, os.NewSyscallError("getsockopt", err)
}
- lsa, _ := syscall.Getsockname(s)
+ lsa, err := syscall.Getsockname(s)
+ if err != nil {
+ poll.CloseFunc(s)
+ return nil, os.NewSyscallError("getsockname", err)
+ }
rsa, _ := syscall.Getpeername(s)
switch lsa.(type) {
case *syscall.SockaddrInet4:
diff --git a/src/net/file_windows.go b/src/net/file_windows.go
index b4eb00e564..6a6305035a 100644
--- a/src/net/file_windows.go
+++ b/src/net/file_windows.go
@@ -39,7 +39,7 @@ func dupFileSocket(f *os.File) (syscall.Handle, error) {
err = sc.Control(func(fd uintptr) {
h, syserr = dupSocket(syscall.Handle(fd))
})
- if err != nil {
+ if err == nil {
err = syserr
}
if err != nil {
diff --git a/src/net/unixsock_test.go b/src/net/unixsock_test.go
index f6c5679f42..3e4a14b255 100644
--- a/src/net/unixsock_test.go
+++ b/src/net/unixsock_test.go
@@ -375,6 +375,17 @@ func TestUnixUnlink(t *testing.T) {
}
return l.(*UnixListener)
}
+ fileListener := func(t *testing.T, l *UnixListener) (*os.File, Listener) {
+ f, err := l.File()
+ if err != nil {
+ t.Fatal(err)
+ }
+ ln, err := FileListener(f)
+ if err != nil {
+ t.Fatal(err)
+ }
+ return f, ln
+ }
checkExists := func(t *testing.T, desc string) {
if _, err := os.Stat(name); err != nil {
t.Fatalf("unix socket does not exist %s: %v", desc, err)
@@ -397,8 +408,7 @@ func TestUnixUnlink(t *testing.T) {
// FileListener should not.
t.Run("FileListener", func(t *testing.T) {
l := listen(t)
- f, _ := l.File()
- l1, _ := FileListener(f)
+ f, l1 := fileListener(t, l)
checkExists(t, "after FileListener")
f.Close()
checkExists(t, "after File close")
@@ -444,8 +454,7 @@ func TestUnixUnlink(t *testing.T) {
t.Run("FileListener/SetUnlinkOnClose(true)", func(t *testing.T) {
l := listen(t)
- f, _ := l.File()
- l1, _ := FileListener(f)
+ f, l1 := fileListener(t, l)
checkExists(t, "after FileListener")
l1.(*UnixListener).SetUnlinkOnClose(true)
f.Close()
@@ -457,8 +466,7 @@ func TestUnixUnlink(t *testing.T) {
t.Run("FileListener/SetUnlinkOnClose(false)", func(t *testing.T) {
l := listen(t)
- f, _ := l.File()
- l1, _ := FileListener(f)
+ f, l1 := fileListener(t, l)
checkExists(t, "after FileListener")
l1.(*UnixListener).SetUnlinkOnClose(false)
f.Close()