OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
syscall: Fix handling of Unix domain @ addresses.
[pf3gnuchains/gcc-fork.git]
/
libgo
/
go
/
syscall
/
socket.go
diff --git
a/libgo/go/syscall/socket.go
b/libgo/go/syscall/socket.go
index
9737590
..
d11d6cd
100644
(file)
--- a/
libgo/go/syscall/socket.go
+++ b/
libgo/go/syscall/socket.go
@@
-87,12
+87,16
@@
func (sa *SockaddrUnix) sockaddr() (*RawSockaddrAny, Socklen_t, error) {
for i := 0; i < n; i++ {
sa.raw.Path[i] = int8(name[i])
}
for i := 0; i < n; i++ {
sa.raw.Path[i] = int8(name[i])
}
+ // length is family (uint16), name, NUL.
+ sl := 2 + Socklen_t(n) + 1
if sa.raw.Path[0] == '@' {
sa.raw.Path[0] = 0
if sa.raw.Path[0] == '@' {
sa.raw.Path[0] = 0
+ // Don't count trailing NUL for abstract address.
+ sl--
}
// length is family (uint16), name, NUL.
}
// length is family (uint16), name, NUL.
- return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)),
2 + Socklen_t(n) + 1
, nil
+ return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)),
sl
, nil
}
func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
}
func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {