From b7dbb29e686e9dfb1a766d427007e69d4db044c2 Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Tue, 11 Jan 2005 16:17:03 +0000 Subject: [PATCH] Read "y/n" response for fingerprints from /dev/tty directly so that dbclient will work with scp. --HG-- extra : convert_revision : 1ec067604618a314ad36464920f08c7113d09aa3 --- CHANGES | 3 +++ cli-kex.c | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index f2689c1..086758c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +- Read "y/n" response for fingerprints from /dev/tty directly so that dbclient + will work with scp. + 0.44 - Mon Jan 3 2005 - SECURITY: Fix for PAM auth so that usernames are logged and conversation diff --git a/cli-kex.c b/cli-kex.c index 03a0670..40d4e95 100644 --- a/cli-kex.c +++ b/cli-kex.c @@ -115,13 +115,23 @@ void recv_msg_kexdh_reply() { static void ask_to_confirm(unsigned char* keyblob, unsigned int keybloblen) { char* fp = NULL; + FILE *tty = NULL; + char response = 'z'; fp = sign_key_fingerprint(keyblob, keybloblen); fprintf(stderr, "\nHost '%s' is not in the trusted hosts file.\n(fingerprint %s)\nDo you want to continue connecting? (y/n)\n", cli_opts.remotehost, fp); - if (getc(stdin) == 'y') { + tty = fopen(_PATH_TTY, "r"); + if (tty) { + response = getc(tty); + fclose(tty); + } else { + response = getc(stdin); + } + + if (response == 'y') { m_free(fp); return; }