[tor-commits] [meek/bug18371] fixup! Bug 18371: symlinks incompatible with Gatekeeper signing

dcf at torproject.org dcf at torproject.org
Wed Mar 9 15:09:42 UTC 2016


commit 675eba207124e1bc183880909d3422c2f3c21f63
Author: Kathy Brade <brade at 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)
 }
 
 



More information about the tor-commits mailing list