commit 675eba207124e1bc183880909d3422c2f3c21f63 Author: Kathy Brade brade@pearlcrescent.com Date: Wed Mar 9 09:53:08 2016 -0500
fixup! Bug 18371: symlinks incompatible with Gatekeeper signing
Fix a problem where copying the profile from the template failed if TorBrowser-Data/Tor/PluggableTransports/ did not already exist (before calling ioutil.TempDir(), the parent directory must exist).
Remove trailing semicolons and unneeded parens. --- meek-client-torbrowser/meek-client-torbrowser.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/meek-client-torbrowser/meek-client-torbrowser.go b/meek-client-torbrowser/meek-client-torbrowser.go index 8a3809d..8647d5d 100644 --- a/meek-client-torbrowser/meek-client-torbrowser.go +++ b/meek-client-torbrowser/meek-client-torbrowser.go @@ -104,15 +104,22 @@ func ensureProfileExists(profilePath string) error {
// If profileTemplatePath is not set, we are running on a platform that // expects the profile to already exist. - if (profileTemplatePath == "") { - return err; + if profileTemplatePath == "" { + return err }
log.Printf("creating profile by copying files from %s to %s\n", profileTemplatePath, profilePath) - tmpPath, err := ioutil.TempDir(filepath.Dir(profilePath), "tmpMeekProfile") + profileParentPath := filepath.Dir(profilePath) + err = os.MkdirAll(profileParentPath, os.ModePerm) + if err != nil { + return err + } + + tmpPath, err := ioutil.TempDir(profileParentPath, "tmpMeekProfile") if err != nil { return err } + err = os.MkdirAll(tmpPath, os.ModePerm) if err != nil { return err @@ -120,7 +127,7 @@ func ensureProfileExists(profilePath string) error {
// Remove the temporary directory before returning. defer func() { - os.RemoveAll(tmpPath); + os.RemoveAll(tmpPath) }()
templatePath, err := filepath.Abs(profileTemplatePath) @@ -130,13 +137,13 @@ func ensureProfileExists(profilePath string) error {
visit := func(path string, info os.FileInfo, err error) error { relativePath := strings.TrimPrefix(path, templatePath) - if (relativePath == "") { + if relativePath == "" { return nil // skip the root directory }
// If relativePath is a directory, create it; if it is a file, copy it. - destPath := filepath.Join(tmpPath, relativePath); - if (info.IsDir()) { + destPath := filepath.Join(tmpPath, relativePath) + if info.IsDir() { err = os.MkdirAll(destPath, info.Mode()) } else { err = copyFile(path, info.Mode(), destPath) @@ -150,7 +157,7 @@ func ensureProfileExists(profilePath string) error { return err }
- return os.Rename(tmpPath, profilePath); + return os.Rename(tmpPath, profilePath) }
tor-commits@lists.torproject.org