ACK to the attached (rebase by me) patch from trac:
https://community.openvpn.net/openvpn/ticket/248

-Steffan
>From 0e132ca6733ede1f066b0cd717b1886a28e09d32 Mon Sep 17 00:00:00 2001
From: James Geboski <jgebo...@gmail.com>
List-Post: openvpn-devel@lists.sourceforge.net
Date: Tue, 8 Jan 2013 17:52:57 -0500
Subject: [PATCH] Fix --askpass not allowing for password input via stdin

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.

Signed-off-by: James Geboski <jgebo...@gmail.com>
---
 src/openvpn/options.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index 74276d4..cd13aa9 100644
--- a/src/openvpn/options.c
+++ b/src/openvpn/options.c
@@ -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,
-- 
2.1.4

Reply via email to