]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
'Destroy tickets on exit' destroys all tickets
authorKevin Wasserman <kevin.wasserman@painless-security.com>
Mon, 16 Jul 2012 18:22:23 +0000 (14:22 -0400)
committerTom Yu <tlyu@mit.edu>
Wed, 29 Aug 2012 20:28:16 +0000 (16:28 -0400)
Previously destroyed only default ccache and used obsolete functions.

Signed-off-by: Kevin Wasserman <kevin.wasserman@painless-security.com>
(cherry picked from commit cc96011e055131c81f224e126260f25c5318d97b)

ticket: 7304
status: resolved

src/windows/leash/LeashView.cpp

index 881d5c16fa4308a9296c2b261016b48b61243ce0..83134e48864fc47a4b19ece228fac46c8556b545 100644 (file)
@@ -1947,22 +1947,17 @@ VOID CLeashView::ResetTreeNodes()
 
 VOID CLeashView::OnDestroy()
 {
+    CCacheDisplayData *elem;
     SetTrayIcon(NIM_DELETE);
 
-    CListView::OnDestroy();
-    if (WaitForSingleObject( ticketinfo.lockObj, INFINITE ) != WAIT_OBJECT_0)
-        throw("Unable to lock ticketinfo");
-    BOOL b_destroy = m_destroyTicketsOnExit && ticketinfo.Krb5.btickets;
-    ReleaseMutex(ticketinfo.lockObj);
-
-    if (b_destroy)
-    {
-        if (pLeash_kdestroy())
-        {
-            AfxMessageBox("There is a problem destroying tickets!",
-                       MB_OK|MB_ICONSTOP);
+    if (m_destroyTicketsOnExit) {
+        elem = m_ccacheDisplay;
+        while (elem != NULL) {
+            kdestroy(elem->m_ccacheName);
+            elem = elem->m_next;
         }
     }
+    CListView::OnDestroy();
 }
 
 VOID CLeashView::OnUpdateDestroyTicket(CCmdUI* pCmdUI)