X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=connect.c;h=57dc20c43ca1ba205ec0a18e263f9dde081390f4;hb=385cc9d8c44eb5be9d57e630129752a72c0a08c8;hp=02e738a0146a5c46aaf3f1d8edc3c055a99e98b9;hpb=745654f82a3ea02b15c59991d4461090a00b5645;p=git.git diff --git a/connect.c b/connect.c index 02e738a01..57dc20c43 100644 --- a/connect.c +++ b/connect.c @@ -621,15 +621,22 @@ int finish_connect(struct child_process *conn) char *git_getpass(const char *prompt) { - char *askpass; + const char *askpass; struct child_process pass; const char *args[3]; static struct strbuf buffer = STRBUF_INIT; askpass = getenv("GIT_ASKPASS"); - - if (!askpass || !(*askpass)) - return getpass(prompt); + if (!askpass) + askpass = askpass_program; + if (!askpass) + askpass = getenv("SSH_ASKPASS"); + if (!askpass || !(*askpass)) { + char *result = getpass(prompt); + if (!result) + die_errno("Could not read password"); + return result; + } args[0] = askpass; args[1] = prompt;