summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Orth2018-05-06 18:08:30 +0200
committerJakob Unterwurzacher2018-06-07 22:57:57 +0200
commit10212d791a3196c2c8705a7a3cccdeb14a8efdbe (patch)
tree23739590b776452fec4791d4737c878f36e76ced
parent53d6a9999dd0e4c31636d16179f284fff35a35d9 (diff)
Set a default PATH if PATH is empty or unset
mount(1) unsets PATH before calling mount.fuse. Therefore it's not set in gocrpytfs either and daemonization fails if gocryptfs was not executed via an absolute path. mount.fuse handles this by leaving the execution of the helper to /bin/sh. /bin/sh handles an empty PATH by searching a few default locations. This patch sets the PATH to a sane default if it's empty or unset.
-rw-r--r--main.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/main.go b/main.go
index a69ec9e..226a20a 100644
--- a/main.go
+++ b/main.go
@@ -126,6 +126,11 @@ func main() {
// On a 2-core machine, setting maxprocs to 4 gives 10% better performance
runtime.GOMAXPROCS(4)
}
+ // mount(1) unsets PATH. Since exec.Command does not handle this case, we set
+ // PATH to a default value if it's empty or unset.
+ if os.Getenv("PATH") == "" {
+ os.Setenv("PATH", "/usr/sbin:/usr/bin:/sbin:/bin")
+ }
var err error
// Parse all command-line options (i.e. arguments starting with "-")
// into "args". Path arguments are parsed below.