diff options
author | Jakob Unterwurzacher | 2016-10-08 18:39:21 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2016-10-08 18:43:31 +0200 |
commit | 04cdc695f0a9af5d06af84527d4107751f6e5e3a (patch) | |
tree | 09c0c004ef5d1ad0ba122f7fc2c88d10ddc458fb | |
parent | 631c538f13997aa8ab4db40c39178a645adf32c3 (diff) |
main: error out when the mount shadows the cipherdir
For example, we cannot mount "/home/user/.cipher" at "/home/user"
because the mount will hide ".cipher" also for us.
Doing it anyway used to cause a nasty hang.
-rw-r--r-- | mount.go | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -36,6 +36,13 @@ func doMount(args *argContainer) int { tlog.Fatal.Printf("Invalid mountpoint: %v", err) os.Exit(ErrExitMountPoint) } + // We cannot mount "/home/user/.cipher" at "/home/user" because the mount + // will hide ".cipher" also for us. + if strings.HasPrefix(args.cipherdir, args.mountpoint) { + tlog.Fatal.Printf("Mountpoint %q would shadow cipherdir %q, this is not supported", + args.mountpoint, args.cipherdir) + os.Exit(ErrExitMountPoint) + } if args.nonempty { err = checkDir(args.mountpoint) } else { |