From: Kir Kolyshkin Date: Tue, 20 Aug 2024 00:40:55 +0000 (-0700) Subject: syscall: optimize Getwd on aix X-Git-Tag: go1.24rc1~1134 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4a9d98d49a4f49672521973852fe8983ba790c5f;p=gostls13.git syscall: optimize Getwd on aix When looking for \0, use clen which may be optimized. Also, return EINVAL when returned string is empty. This makes it similar to how it is implemented in *bsd and solaris. Change-Id: I3e37ed25f47110eafd12c80291f7746de9db7b23 Reviewed-on: https://go-review.googlesource.com/c/go/+/606902 TryBot-Bypass: Ian Lance Taylor Reviewed-by: Ian Lance Taylor Reviewed-by: Tobias Klauser Auto-Submit: Ian Lance Taylor Reviewed-by: Cherry Mui Run-TryBot: Cherry Mui --- diff --git a/src/syscall/syscall_aix.go b/src/syscall/syscall_aix.go index a9bd7a3733..36dfd90678 100644 --- a/src/syscall/syscall_aix.go +++ b/src/syscall/syscall_aix.go @@ -119,11 +119,11 @@ func Getwd() (ret string, err error) { b := make([]byte, len) err := getcwd(&b[0], len) if err == nil { - i := 0 - for b[i] != 0 { - i++ + n := clen(b[:]) + if n < 1 { + return "", EINVAL } - return string(b[0:i]), nil + return string(b[:n]), nil } if err != ERANGE { return "", err