From ea266a3546a7fd48dbcb434dc66bfb7695a53b65 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 30 Oct 2014 20:21:22 +0100 Subject: m MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/cerberus.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/cerberus.c') diff --git a/src/cerberus.c b/src/cerberus.c index adf5b6b..d80e548 100644 --- a/src/cerberus.c +++ b/src/cerberus.c @@ -324,20 +324,20 @@ void do_login(int argc, char** argv) initialise_login(hostname, username, read_passphrase); if (skip_auth == 0) ret = authenticate_login(); + /* Passphrase entered, turn off timeout */ + alarm(0); #endif if (ret == 2) printf("(auto-authenticated)\n"); if (ret == 0) { + preexit(); fork_exec_wait_hook(HOOK_DENIED, argc, argv); sleep(FAILURE_SLEEP); _exit(1); } #if AUTH > 0 - /* Passphrase entered, turn off timeout */ - alarm(0); - /* Wipe and free the passphrase from the memory */ destroy_passphrase(); @@ -405,7 +405,18 @@ void do_login(int argc, char** argv) } + #if AUTH > 0 +void preexit(void) +{ + /* Wipe and free the passphrase from the memory */ + destroy_passphrase(); + + /* Reset terminal settings */ + passphrase_reenable_echo(); +} + + /** * Read passphrase from the terminal * -- cgit v1.2.3-70-g09d2