mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-02 23:27:31 -04:00
unix: 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. Same as CL 309353 does for package syscall. Change-Id: I26dffc3fefa90d636cb67a904df0bfc3b131f702 Reviewed-on: https://go-review.googlesource.com/c/sys/+/309689 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
f1c623a9e7
commit
fe65e336ab
+5
-4
@@ -39,16 +39,19 @@ func TestSCMCredentials(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Socketpair: %v", err)
|
t.Fatalf("Socketpair: %v", err)
|
||||||
}
|
}
|
||||||
defer unix.Close(fds[0])
|
|
||||||
defer unix.Close(fds[1])
|
|
||||||
|
|
||||||
err = unix.SetsockoptInt(fds[0], unix.SOL_SOCKET, unix.SO_PASSCRED, 1)
|
err = unix.SetsockoptInt(fds[0], unix.SOL_SOCKET, unix.SO_PASSCRED, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
unix.Close(fds[0])
|
||||||
|
unix.Close(fds[1])
|
||||||
t.Fatalf("SetsockoptInt: %v", err)
|
t.Fatalf("SetsockoptInt: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
srvFile := os.NewFile(uintptr(fds[0]), "server")
|
srvFile := os.NewFile(uintptr(fds[0]), "server")
|
||||||
|
cliFile := os.NewFile(uintptr(fds[1]), "client")
|
||||||
defer srvFile.Close()
|
defer srvFile.Close()
|
||||||
|
defer cliFile.Close()
|
||||||
|
|
||||||
srv, err := net.FileConn(srvFile)
|
srv, err := net.FileConn(srvFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("FileConn: %v", err)
|
t.Errorf("FileConn: %v", err)
|
||||||
@@ -56,8 +59,6 @@ func TestSCMCredentials(t *testing.T) {
|
|||||||
}
|
}
|
||||||
defer srv.Close()
|
defer srv.Close()
|
||||||
|
|
||||||
cliFile := os.NewFile(uintptr(fds[1]), "client")
|
|
||||||
defer cliFile.Close()
|
|
||||||
cli, err := net.FileConn(cliFile)
|
cli, err := net.FileConn(cliFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("FileConn: %v", err)
|
t.Errorf("FileConn: %v", err)
|
||||||
|
|||||||
@@ -206,8 +206,6 @@ func TestPassFD(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Socketpair: %v", err)
|
t.Fatalf("Socketpair: %v", err)
|
||||||
}
|
}
|
||||||
defer unix.Close(fds[0])
|
|
||||||
defer unix.Close(fds[1])
|
|
||||||
writeFile := os.NewFile(uintptr(fds[0]), "child-writes")
|
writeFile := os.NewFile(uintptr(fds[0]), "child-writes")
|
||||||
readFile := os.NewFile(uintptr(fds[1]), "parent-reads")
|
readFile := os.NewFile(uintptr(fds[1]), "parent-reads")
|
||||||
defer writeFile.Close()
|
defer writeFile.Close()
|
||||||
|
|||||||
Reference in New Issue
Block a user