]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/x509: fix getting user home dir on darwin
authorKir Kolyshkin <kolyshkin@gmail.com>
Thu, 4 Oct 2018 01:41:18 +0000 (18:41 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 4 Oct 2018 02:31:59 +0000 (02:31 +0000)
As pointed out in https://github.com/golang/go/issues/26463,
HOME (or equivalent) environment variable (rather than the
value obtained by parsing /etc/passwd or the like) should be
used to obtain user's home directory.

Since commit fa1a49aa556d8 there's a method to obtain
user's home directory -- use it here.

Change-Id: I852fbb24249bcfe08f3874fae6e7b9d01d869190
Reviewed-on: https://go-review.googlesource.com/c/139426
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/crypto/x509/root_darwin.go

index 9d7b3a6ffb6cc6977373d1f3d055e11353d8de5f..ae69a2faddd847cb1a9c2851e4581e4b60c0f824 100644 (file)
@@ -16,7 +16,6 @@ import (
        "io/ioutil"
        "os"
        "os/exec"
-       "os/user"
        "path/filepath"
        "strings"
        "sync"
@@ -67,17 +66,17 @@ func execSecurityRoots() (*CertPool, error) {
                "/Library/Keychains/System.keychain",
        }
 
-       u, err := user.Current()
-       if err != nil {
+       home := os.UserHomeDir()
+       if home == "" {
                if debugExecDarwinRoots {
-                       println(fmt.Sprintf("crypto/x509: get current user: %v", err))
+                       println("crypto/x509: can't get user home directory")
                }
        } else {
                args = append(args,
-                       filepath.Join(u.HomeDir, "/Library/Keychains/login.keychain"),
+                       filepath.Join(home, "/Library/Keychains/login.keychain"),
 
                        // Fresh installs of Sierra use a slightly different path for the login keychain
-                       filepath.Join(u.HomeDir, "/Library/Keychains/login.keychain-db"),
+                       filepath.Join(home, "/Library/Keychains/login.keychain-db"),
                )
        }