forked from Mirrors/oauth2
google: prefer os.Getenv("HOME") over os/user.Current() so as to avoid SEGV
Due to an issue in handling thread-local storages, os/user can lead to SEGV when glibc is statically linked with. So we prefer os.Getenv("HOME") for guessing where is the home directory. See also: golang/go#13470 Change-Id: I1046ff93a71aa3b11299f7e6cf65ff7b1fb07eb9 Reviewed-on: https://go-review.googlesource.com/34175 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
da3ce8d62a
commit
96382aa079
|
@ -160,9 +160,13 @@ var sdkConfigPath = func() (string, error) {
|
|||
}
|
||||
|
||||
func guessUnixHomeDir() string {
|
||||
usr, err := user.Current()
|
||||
if err == nil {
|
||||
return usr.HomeDir
|
||||
// Prefer $HOME over user.Current due to glibc bug: golang.org/issue/13470
|
||||
if v := os.Getenv("HOME"); v != "" {
|
||||
return v
|
||||
}
|
||||
return os.Getenv("HOME")
|
||||
// Else, fall back to user.Current:
|
||||
if u, err := user.Current(); err == nil {
|
||||
return u.HomeDir
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue