From: Jeffrey Altman Date: Mon, 1 Oct 2007 05:19:05 +0000 (+0000) Subject: NIM: BUG: APP: leaking prompts in obtain new credentials dialog X-Git-Tag: krb5-1.7-alpha1~833 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3049880351ffffb3df327dc845807b9611dd0f47;p=krb5.git NIM: BUG: APP: leaking prompts in obtain new credentials dialog The Kerberos v5 plug-in for Network Identity Manager was not clearing the list of prompts properly when a user changes the active identity in the new credentials dialog. The stale prompts would be visible to the user if the newly selected identity is invalid or the new identity cannot be validated. This patch clears the prompts if there is an identity change. ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20028 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/windows/identity/plugins/krb5/krb5newcreds.c b/src/windows/identity/plugins/krb5/krb5newcreds.c index 410393caf..6b64302c3 100644 --- a/src/windows/identity/plugins/krb5/krb5newcreds.c +++ b/src/windows/identity/plugins/krb5/krb5newcreds.c @@ -2039,10 +2039,22 @@ k5_msg_cred_dialog(khm_int32 msg_type, /* if the fiber is already in a kinit, cancel it */ if(g_fjob.state == FIBER_STATE_KINIT) { + khm_boolean clear_prompts = TRUE; + + khui_cw_lock_nc(nc); + if (nc->n_identities > 0 && + kcdb_identity_is_equal(nc->identities[0], g_fjob.identity)) { + clear_prompts = FALSE; + } + khui_cw_unlock_nc(nc); + g_fjob.command = FIBER_CMD_CANCEL; SwitchToFiber(k5_kinit_fiber); /* we get here when the cancel operation completes */ k5_free_kinit_job(); + + if (clear_prompts) + khui_cw_clear_prompts(nc); } khui_cw_lock_nc(nc);