From: Tom Yu Date: Mon, 1 Oct 2007 23:53:38 +0000 (+0000) Subject: pull up r20028 from trunk X-Git-Tag: krb5-1.6.3-beta2~20 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=52ca2c0d9ce05f2af9d4bd11bf9123aee67c5154;p=krb5.git pull up r20028 from trunk r20028@cathode-dark-space: jaltman | 2007-10-01 01:19:05 -0400 ticket: new subject: 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: 5793 version_fixed: 1.6.3 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@20069 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);