[PATCH] git_getpass: fix ssh-askpass behaviour
call ssh-askpass only if the display environment variable is also set
---
connect.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/connect.c b/connect.c
index 57dc20c..2810e3b 100644
--- a/connect.c
+++ b/connect.c
@@ -621,7 +621,7 @@ int finish_connect(struct child_process *conn)
char *git_getpass(const char *prompt)
{
- const char *askpass;
+ const char *askpass, *display;
struct child_process pass;
const char *args[3];
static struct strbuf buffer = STRBUF_INIT;
@@ -631,7 +631,10 @@ char *git_getpass(const char *prompt)
askpass = askpass_program;
if (!askpass)
askpass = getenv("SSH_ASKPASS");
- if (!askpass || !(*askpass)) {
+
+ /* only call askpass if display is set */
+ display = getenv("DISPLAY");
+ if (!display || !(*display) || !askpass || !(*askpass))
char *result = getpass(prompt);
if (!result)
die_errno("Could not read password");
--
1.7.2.2