]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: prepare for 64-bit ints
authorRuss Cox <rsc@golang.org>
Mon, 24 Sep 2012 04:06:22 +0000 (00:06 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 24 Sep 2012 04:06:22 +0000 (00:06 -0400)
This CL fixes code that incorrectly assumes that int is 32 bits wide.
Specifically, the socketpair system call expects a pointer to a pair
of int32s, not a pair of ints. Fix this inside the wrappers without
changing the APIs.

Update #2188.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6552063

15 files changed:
src/pkg/syscall/syscall_bsd.go
src/pkg/syscall/syscall_linux.go
src/pkg/syscall/syscall_linux_386.go
src/pkg/syscall/syscall_linux_amd64.go
src/pkg/syscall/syscall_linux_arm.go
src/pkg/syscall/zsyscall_darwin_386.go
src/pkg/syscall/zsyscall_darwin_amd64.go
src/pkg/syscall/zsyscall_freebsd_386.go
src/pkg/syscall/zsyscall_freebsd_amd64.go
src/pkg/syscall/zsyscall_linux_amd64.go
src/pkg/syscall/zsyscall_linux_arm.go
src/pkg/syscall/zsyscall_netbsd_386.go
src/pkg/syscall/zsyscall_netbsd_amd64.go
src/pkg/syscall/zsyscall_openbsd_386.go
src/pkg/syscall/zsyscall_openbsd_amd64.go

index 26eb196af9586d3a084f386f85e7ad40d4589fb4..2f7007576bfeb3cb7a2b997e12b5caf6070e00f8 100644 (file)
@@ -362,10 +362,15 @@ func Socket(domain, typ, proto int) (fd int, err error) {
        return
 }
 
-//sysnb socketpair(domain int, typ int, proto int, fd *[2]int) (err error)
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
 
 func Socketpair(domain, typ, proto int) (fd [2]int, err error) {
-       err = socketpair(domain, typ, proto, &fd)
+       var fdx [2]int32
+       err = socketpair(domain, typ, proto, &fdx)
+       if err == nil {
+               fd[0] = int(fdx[0])
+               fd[1] = int(fdx[1])
+       }
        return
 }
 
index 797e46c0cb73adfa21c787c4707b3e61b8a0f6ab..89bba25210af097f2fbdd231db78b2841e627ceb 100644 (file)
@@ -439,7 +439,12 @@ func Socket(domain, typ, proto int) (fd int, err error) {
 }
 
 func Socketpair(domain, typ, proto int) (fd [2]int, err error) {
-       err = socketpair(domain, typ, proto, &fd)
+       var fdx [2]int32
+       err = socketpair(domain, typ, proto, &fdx)
+       if err == nil {
+               fd[0] = int(fdx[0])
+               fd[1] = int(fdx[1])
+       }
        return
 }
 
index e357f6ebb2f1fee738b446ae029e698c4f6e13d0..f838a54bd9bacc4bc53c0908ea3d70ae9df47ef1 100644 (file)
@@ -193,7 +193,7 @@ func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
        return
 }
 
-func socketpair(domain int, typ int, flags int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
        _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e != 0 {
                err = e
index 205ac1e5b4f9dbd7aa898cbf40fbc7d6fac35719..54d8dbe0e6936c7bb533fe1ab361c4070cee0f13 100644 (file)
@@ -46,7 +46,7 @@ package syscall
 //sys  getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error)
 //sys  setsockopt(s int, level int, name int, val uintptr, vallen uintptr) (err error)
 //sysnb        socket(domain int, typ int, proto int) (fd int, err error)
-//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int) (err error)
+//sysnb        socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
 //sysnb        getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
 //sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
 //sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
index fbf5818e59ea24534e324a50750d84eaa0083de6..96e097b06292fc4abf45c8c641d3e8b1547654d0 100644 (file)
@@ -37,7 +37,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error)
 //sysnb        getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
 //sys  recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
 //sys  sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen) (err error)
-//sysnb        socketpair(domain int, typ int, flags int, fd *[2]int) (err error)
+//sysnb        socketpair(domain int, typ int, flags int, fd *[2]int32) (err error)
 //sys  recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
 //sys  sendmsg(s int, msg *Msghdr, flags int) (err error)
 
index e7a14e66cac954058d628a13499e946608f5ed71..34aa1fc8e9e336a467479fd1a80cfe470d934c1c 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index 7c456ea1156ca86b10100b043fd929bed73815db..fb56e2ec1c86d1b0405253ea233bf07738b088fd 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index 193818d7f425f62c3191dfa323adfc188b6ff0f4..6a7524ba4622ec7fc650056004fa8cf101a871ae 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index 9bef6f3ffc81a7e7ed9711575b179e8d6daa29a5..3f84dc23c6c5cebf57f55a1f2d535a0767afec99 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index ec565227ea7c417085adabae6d548052e17b10af..28d86079bf67a8e4f44a0a44752dfaae1ae4b8a8 100644 (file)
@@ -1673,7 +1673,7 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index 54793deb731d586ca907c4480a68b78ece31661c..7b35263949901ae1e8e9cafa08c3072267d07494 100644 (file)
@@ -1346,7 +1346,7 @@ func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen) (err err
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, flags int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index ee3b540dc1eb57814af89faf9edde355ca028c50..3b84c4fe76d68d2ca473eeb9941de2e2b57c02ae 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index f677a4a05720f1edef15c7ee57ac1b6465ffa8dc..a8affd9315c70e0cebccdf80a9a7efdc2d1fd14b 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index 955d131c9cf7a8339558b4c9208ca09fe3e43e2e..21a61474e677d9aee5ef1285bce572502f7b3103 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1
index 952158d33375e089e90eaff973deafdd4fc90c6d..a6ede5980b84a1656d702c9d07654d5af3bc697a 100644 (file)
@@ -131,7 +131,7 @@ func Shutdown(s int, how int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func socketpair(domain int, typ int, proto int, fd *[2]int) (err error) {
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
        _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
        if e1 != 0 {
                err = e1