]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix --askpass not allowing for password input via stdin
authorJames Geboski <jgeboski@gmail.com>
Tue, 8 Jan 2013 22:52:57 +0000 (17:52 -0500)
committerGert Doering <gert@greenie.muc.de>
Mon, 13 Jul 2015 19:37:00 +0000 (21:37 +0200)
This resolves --askpass treating stdin as a file during the file access
check. In turn, this leads to openvpn failing to start if this option is
set to stdin.

By default, --askpass reads the certificate's password from stdin rather
than a file. Without passing the CHKACC_ACPTSTDIN flag to
check_file_access(), stdin is marked as being a nonexistent file.

Trac #248

Signed-off-by: James Geboski <jgeboski@gmail.com>
Acked-by: Steffan Karger <steffan.karger@fox-it.com>
Message-Id: <55A41225.2020705@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/9918
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/options.c

index 4165ec7d28db165a920e806bea7fb5b10e70199b..76e6b6522bd150fec918e01d92a4e00dbd2ba87d 100644 (file)
@@ -2738,8 +2738,8 @@ options_postprocess_filechecks (struct options *options)
                              options->packet_id_file, R_OK|W_OK, "--replay-persist");
 
   /* ** Password files ** */
-  errs |= check_file_access (CHKACC_FILE, options->key_pass_file, R_OK,
-                             "--askpass");
+  errs |= check_file_access (CHKACC_FILE|CHKACC_ACPTSTDIN,
+                             options->key_pass_file, R_OK, "--askpass");
 #endif /* ENABLE_CRYPTO */
 #ifdef ENABLE_MANAGEMENT
   errs |= check_file_access (CHKACC_FILE|CHKACC_ACPTSTDIN,