]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: optimize Getwd on aix
authorKir Kolyshkin <kolyshkin@gmail.com>
Tue, 20 Aug 2024 00:40:55 +0000 (17:40 -0700)
committerIan Lance Taylor <iant@golang.org>
Wed, 21 Aug 2024 23:14:07 +0000 (23:14 +0000)
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 <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>

src/syscall/syscall_aix.go

index a9bd7a37336ddef8d8c33f68788287cc0a3f644a..36dfd90678804f104d6ba40756cc3a6620e9e0ba 100644 (file)
@@ -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