[go] syscall: don't defer close raw Socketpair fds in tests

27 views
Skip to first unread message

Tobias Klauser (Gerrit)

unread,
Apr 14, 2021, 1:49:22 AM4/14/21
to goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Ian Lance Taylor, Go Bot, golang-co...@googlegroups.com

Tobias Klauser submitted this change.

View Change

Approvals: Ian Lance Taylor: Looks good to me, approved Tobias Klauser: Trusted; Run TryBots Go Bot: TryBots succeeded
syscall: don't defer close raw Socketpair fds in tests

The raw fds are successively wrapped using os.NewFile and will be closed
by (*os.File).Close. Avoids a double close, in the worst case closing an
unrelated fd.

Change-Id: I86aabe5ed865eff43d264ddae1fb07c935868e97
Reviewed-on: https://go-review.googlesource.com/c/go/+/309353
Trust: Tobias Klauser <tobias....@gmail.com>
Run-TryBot: Tobias Klauser <tobias....@gmail.com>
TryBot-Result: Go Bot <go...@golang.org>
Reviewed-by: Ian Lance Taylor <ia...@golang.org>
---
M src/syscall/creds_test.go
M src/syscall/syscall_unix_test.go
2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/syscall/creds_test.go b/src/syscall/creds_test.go
index 463033d..736b497 100644
--- a/src/syscall/creds_test.go
+++ b/src/syscall/creds_test.go
@@ -38,16 +38,19 @@
if err != nil {
t.Fatalf("Socketpair: %v", err)
}
- defer syscall.Close(fds[0])
- defer syscall.Close(fds[1])

err = syscall.SetsockoptInt(fds[0], syscall.SOL_SOCKET, syscall.SO_PASSCRED, 1)
if err != nil {
+ syscall.Close(fds[0])
+ syscall.Close(fds[1])
t.Fatalf("SetsockoptInt: %v", err)
}

srvFile := os.NewFile(uintptr(fds[0]), "server")
+ cliFile := os.NewFile(uintptr(fds[1]), "client")
defer srvFile.Close()
+ defer cliFile.Close()
+
srv, err := net.FileConn(srvFile)
if err != nil {
t.Errorf("FileConn: %v", err)
@@ -55,8 +58,6 @@
}
defer srv.Close()

- cliFile := os.NewFile(uintptr(fds[1]), "client")
- defer cliFile.Close()
cli, err := net.FileConn(cliFile)
if err != nil {
t.Errorf("FileConn: %v", err)
diff --git a/src/syscall/syscall_unix_test.go b/src/syscall/syscall_unix_test.go
index ce56c21..af0bc85 100644
--- a/src/syscall/syscall_unix_test.go
+++ b/src/syscall/syscall_unix_test.go
@@ -159,8 +159,6 @@
if err != nil {
t.Fatalf("Socketpair: %v", err)
}
- defer syscall.Close(fds[0])
- defer syscall.Close(fds[1])
writeFile := os.NewFile(uintptr(fds[0]), "child-writes")
readFile := os.NewFile(uintptr(fds[1]), "parent-reads")
defer writeFile.Close()

To view, visit change 309353. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: I86aabe5ed865eff43d264ddae1fb07c935868e97
Gerrit-Change-Number: 309353
Gerrit-PatchSet: 2
Gerrit-Owner: Tobias Klauser <tobias....@gmail.com>
Gerrit-Reviewer: Go Bot <go...@golang.org>
Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
Gerrit-Reviewer: Tobias Klauser <tobias....@gmail.com>
Gerrit-MessageType: merged
Reply all
Reply to author
Forward
0 new messages