From 7b411b3993891e448c89dfe9ee27b03bcf66db4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sat, 10 Mar 2012 09:59:34 -0800 Subject: [PATCH] fixup logic for prompting for password --- lib/krb5/init_creds_pw.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/krb5/init_creds_pw.c b/lib/krb5/init_creds_pw.c index 708710c3d..859346511 100644 --- a/lib/krb5/init_creds_pw.c +++ b/lib/krb5/init_creds_pw.c @@ -2472,18 +2472,17 @@ krb5_get_init_creds_password(krb5_context context, if (prompter != NULL && ctx->password == NULL && password == NULL) { krb5_prompt prompt; krb5_data password_data; - char *p, *q; - int aret = -1; + char *p, *q = NULL; + int aret; - ret = krb5_unparse_name (context, client, &p); - if (!ret) { - aret = asprintf (&q, "%s's Password: ", p); - free (p); - } - if (!ret || aret == -1 || !q) { - if (!ret) - ret = ENOMEM; - krb5_clear_error_message (context); + ret = krb5_unparse_name(context, client, &p); + if (ret) + goto out; + + aret = asprintf(&q, "%s's Password: ", p); + free (p); + if (aret == -1 || q == NULL) { + ret = krb5_enomem(context); goto out; } prompt.prompt = q;