From 89bcc50294c765315fafa0d2201edfc59438ff8f Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sat, 8 Oct 2016 17:19:06 +0200 Subject: [PATCH] main: check if the config file can opened before prompting for password This was frustrating: $ gocryptfs a b Password: Decrypting master key open a/gocryptfs.conf: permission denied --- main.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index ac412a6..9fc9b6b 100644 --- a/main.go +++ b/main.go @@ -64,12 +64,13 @@ Options: // loadConfig - load the config file "filename", prompting the user for the password func loadConfig(args *argContainer) (masterkey []byte, confFile *configfile.ConfFile) { - // Check if the file exists at all before prompting for a password - _, err := os.Stat(args.config) + // Check if the file can be opened at all before prompting for a password + fd, err := os.Open(args.config) if err != nil { - tlog.Fatal.Printf("Config file not found: %v", err) + tlog.Fatal.Printf("Cannot open config file: %v", err) os.Exit(ErrExitLoadConf) } + fd.Close() pw := readpassword.Once(args.extpass) tlog.Info.Println("Decrypting master key") masterkey, confFile, err = configfile.LoadConfFile(args.config, pw)