aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2004-10-08 03:57:45 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2004-10-08 03:57:45 +0000
commita2374cc7e141f02fd00d9634d26c16ba9f2ac7f3 (patch)
treec01b1f87780c66bfadaf1e077b0683b52df2c469
parentf9901b77b13039c26189f3af164e7998c038a07f (diff)
downloadkrb5-a2374cc7e141f02fd00d9634d26c16ba9f2ac7f3.zip
krb5-a2374cc7e141f02fd00d9634d26c16ba9f2ac7f3.tar.gz
krb5-a2374cc7e141f02fd00d9634d26c16ba9f2ac7f3.tar.bz2
Fix the forced setting of the Initial Ticket Flag on Win2000 and
add the functionality to XP and 2003 SP1. ticket: 2735 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16814 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/krb5/ccache/ChangeLog4
-rw-r--r--src/lib/krb5/ccache/cc_mslsa.c18
2 files changed, 21 insertions, 1 deletions
diff --git a/src/lib/krb5/ccache/ChangeLog b/src/lib/krb5/ccache/ChangeLog
index 11ac8d8..757ce38 100644
--- a/src/lib/krb5/ccache/ChangeLog
+++ b/src/lib/krb5/ccache/ChangeLog
@@ -1,3 +1,7 @@
+2004-10-07 Jeffrey Altman <jaltman@mit.edu>
+ * cc_mslsa.c: Fix the forced setting of the Initial Ticket Flag
+ on Win2000 and add it to XP and 2003 SP1
+
2004-09-17 Jeffrey Altman <jaltman@mit.edu>
* cc_mslsa.c: Fix the error returned when krb5_lcc_start_seq_get()
discovers the cache is empty. Check for the new error in
diff --git a/src/lib/krb5/ccache/cc_mslsa.c b/src/lib/krb5/ccache/cc_mslsa.c
index f35a594..c12f581 100644
--- a/src/lib/krb5/ccache/cc_mslsa.c
+++ b/src/lib/krb5/ccache/cc_mslsa.c
@@ -1621,7 +1621,7 @@ GetMSCacheTicketFromCacheInfoW2K( HANDLE LogonHandle, ULONG PackageId,
* to us.
*/
if ( tktinfo->TicketFlags & KERB_TICKET_FLAGS_initial )
- (*ticket)->TicketFlags &= KERB_TICKET_FLAGS_initial;
+ (*ticket)->TicketFlags |= KERB_TICKET_FLAGS_initial;
return(TRUE);
}
@@ -1679,6 +1679,14 @@ GetMSCacheTicketFromCacheInfoXP( HANDLE LogonHandle, ULONG PackageId,
/* otherwise return ticket */
*ticket = &(pTicketResponse->Ticket);
+
+ /* set the initial flag if we were attempting to retrieve one
+ * because Windows won't necessarily return the initial ticket
+ * to us.
+ */
+ if ( tktinfo->TicketFlags & KERB_TICKET_FLAGS_initial )
+ (*ticket)->TicketFlags |= KERB_TICKET_FLAGS_initial;
+
return(TRUE);
}
@@ -1737,6 +1745,14 @@ GetMSCacheTicketFromCacheInfoEX2( HANDLE LogonHandle, ULONG PackageId,
/* otherwise return ticket */
*ticket = &(pTicketResponse->Ticket);
+
+ /* set the initial flag if we were attempting to retrieve one
+ * because Windows won't necessarily return the initial ticket
+ * to us.
+ */
+ if ( tktinfo->TicketFlags & KERB_TICKET_FLAGS_initial )
+ (*ticket)->TicketFlags |= KERB_TICKET_FLAGS_initial;
+
return(TRUE);
}
#endif /* HAVE_CACHE_INFO_EX2 */