From d135a0bd16185258ef7dc669ebbff33b3db6283d Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 28 Nov 1995 04:17:27 +0000 Subject: [PATCH] LONG_SKEY_PROMPT is less of a klusge / --- check.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/check.c b/check.c index fa9aae069..b89d9caad 100644 --- a/check.c +++ b/check.c @@ -650,9 +650,11 @@ static char *sudo_skeyprompt(user_skey, p) char *p; { char skeyprompt[80]; +#ifndef LONG_SKEY_PROMPT static char *old_prompt = NULL; static int plen; char *new_prompt; +#endif /* LONG_SKEY_PROMPT */ /* return the old prompt if we cannot get s/key info */ if (skeychallenge(user_skey, user_name, skeyprompt)) { @@ -666,6 +668,18 @@ static char *sudo_skeyprompt(user_skey, p) # endif /* SKEY_ONLY */ } +#ifdef LONG_SKEY_PROMPT + /* separate s/key challenge and prompt for easy snarfing */ + if (skeyprompt[0] == 's' && skeyprompt[1] == '/') + (void) puts(&skeyprompt[2]); + else + (void) puts(skeyprompt); + + /* return old prompt unmodified */ + return(p); + +#else + /* keep a pointer to the original prompt around for future reference */ if (old_prompt == NULL) { old_prompt = p; @@ -684,19 +698,12 @@ static char *sudo_skeyprompt(user_skey, p) exit(1); } -#ifdef LONG_SKEY_PROMPT - /* separate s/key challenge and prompt for easy snarfing */ - if (skeyprompt[0] == 's' && skeyprompt[1] == '/') - (void) sprintf(new_prompt, "%s\n%s", &skeyprompt[2], old_prompt); - else - (void) sprintf(new_prompt, "%s\n%s", skeyprompt, old_prompt); -#else /* embed the s/key challenge into the new password prompt */ (void) strncpy(new_prompt, old_prompt, plen); (void) sprintf(new_prompt + plen, " [%s]:", skeyprompt); -#endif /* LONG_SKEY_PROMPT */ return(new_prompt); +#endif /* LONG_SKEY_PROMPT */ } #endif /* HAVE_SKEY */ -- 2.40.0