From 31c3b98c8406318271f1dc50e8e98808308694f4 Mon Sep 17 00:00:00 2001 From: Albert Sundjaja Date: Sat, 22 Feb 2025 00:16:32 +1100 Subject: [PATCH] bugfix with unnamed address --- src/syscall/syscall_linux.go | 6 +++--- src/syscall/syscall_windows.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/syscall/syscall_linux.go b/src/syscall/syscall_linux.go index 3c73a09ff2..d733ca9bf9 100644 --- a/src/syscall/syscall_linux.go +++ b/src/syscall/syscall_linux.go @@ -554,7 +554,7 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { // '@' is also a valid way to specify abstract addresses. isAbstract := n > 0 && (name[0] == '@' || name[0] == '\x00') - // Non-abstract addresses is NUL terminated. + // Non-abstract named addresses are NUL terminated. // The length can't use the full capacity as we need to add NUL. if n == len(sa.raw.Path) && !isAbstract { return nil, 0, EINVAL @@ -570,8 +570,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { // Abstract addresses are not NUL terminated. // We rewrite '@' prefix to NUL here. sa.raw.Path[0] = 0 - } else { - // Add NUL for non-abstract addresses. + } else if n > 0 { + // Add NUL for non-abstract named addresses. sl++ } diff --git a/src/syscall/syscall_windows.go b/src/syscall/syscall_windows.go index da72c72e3b..74397e9dae 100644 --- a/src/syscall/syscall_windows.go +++ b/src/syscall/syscall_windows.go @@ -862,7 +862,7 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { // '@' is also a valid way to specify abstract addresses. isAbstract := n > 0 && (name[0] == '@' || name[0] == '\x00') - // Non-abstract addresses is NUL terminated. + // Non-abstract named addresses are NUL terminated. // The length can't use the full capacity as we need to add NUL. if n == len(sa.raw.Path) && !isAbstract { return nil, 0, EINVAL @@ -878,8 +878,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { // Abstract addresses are not NUL terminated. // We rewrite '@' prefix to NUL here. sa.raw.Path[0] = 0 - } else { - // Add NUL for non-abstract addresses. + } else if n > 0 { + // Add NUL for non-abstract named addresses. sl++ }