diff --git a/unix/syscall_bsd.go b/unix/syscall_bsd.go index 6f328e3a5..a00c3e545 100644 --- a/unix/syscall_bsd.go +++ b/unix/syscall_bsd.go @@ -316,7 +316,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { if err != nil { return "", err } - return string(buf[:vallen-1]), nil + return ByteSliceToString(buf[:vallen]), nil } //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index 9b636ca07..0f85e29e6 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -1310,7 +1310,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { return "", err } } - return string(buf[:vallen-1]), nil + return ByteSliceToString(buf[:vallen]), nil } func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { diff --git a/unix/syscall_solaris.go b/unix/syscall_solaris.go index 60c8142d4..21974af06 100644 --- a/unix/syscall_solaris.go +++ b/unix/syscall_solaris.go @@ -158,7 +158,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { if err != nil { return "", err } - return string(buf[:vallen-1]), nil + return ByteSliceToString(buf[:vallen]), nil } const ImplementsGetwd = true diff --git a/unix/syscall_zos_s390x.go b/unix/syscall_zos_s390x.go index d99d05f1b..b473038c6 100644 --- a/unix/syscall_zos_s390x.go +++ b/unix/syscall_zos_s390x.go @@ -1104,7 +1104,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { return "", err } - return string(buf[:vallen-1]), nil + return ByteSliceToString(buf[:vallen]), nil } func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {