From 04cdc695f0a9af5d06af84527d4107751f6e5e3a Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sat, 8 Oct 2016 18:39:21 +0200 Subject: [PATCH] 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. --- mount.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mount.go b/mount.go index 56f1dc1..90443ff 100644 --- a/mount.go +++ b/mount.go @@ -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 {