diff options
author | Tom Yu <tlyu@mit.edu> | 2004-07-08 18:55:52 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2004-07-08 18:55:52 +0000 |
commit | 3e02a517faf35beb5dbee510ca9097bb536b00b4 (patch) | |
tree | dfd938ad75aad3e68a91c5a886e479f799f0acfe /src | |
parent | 4372abe0e9754e029a2a2b82d3deb71205de9bfc (diff) | |
download | krb5-3e02a517faf35beb5dbee510ca9097bb536b00b4.zip krb5-3e02a517faf35beb5dbee510ca9097bb536b00b4.tar.gz krb5-3e02a517faf35beb5dbee510ca9097bb536b00b4.tar.bz2 |
pullup from trunk
ticket: 2627
version_fixed: 1.3.5
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-3@16565 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/krb5/ccache/ChangeLog | 4 | ||||
-rw-r--r-- | src/lib/krb5/ccache/cc_mslsa.c | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/krb5/ccache/ChangeLog b/src/lib/krb5/ccache/ChangeLog index d39a8d7..afcbdd2 100644 --- a/src/lib/krb5/ccache/ChangeLog +++ b/src/lib/krb5/ccache/ChangeLog @@ -1,5 +1,9 @@ 2004-07-07 Jeffrey Altman <jaltman@mit.edu> + * cc_mslsa.c: Fix thread safety + +2004-07-07 Jeffrey Altman <jaltman@mit.edu> + * cc_mslsa.c: When obtaining a TGT from MSLSA, do not ignore the cache if the requested enctype is the NULL enctype. diff --git a/src/lib/krb5/ccache/cc_mslsa.c b/src/lib/krb5/ccache/cc_mslsa.c index 8fd278e..0a8b7d3 100644 --- a/src/lib/krb5/ccache/cc_mslsa.c +++ b/src/lib/krb5/ccache/cc_mslsa.c @@ -68,6 +68,13 @@ #define MAX_MSG_SIZE 256 #define MAX_MSPRINC_SIZE 1024 +/* THREAD SAFETY + * The functions is_windows_2000(), is_windows_xp(), and does_retrieve_ticket_cache_ticket() + * contain static variables to cache the responses of the tests being performed. There is + * no harm in the test being performed more than once since the result will always be the + * same. + */ + static BOOL is_windows_2000 (void) { @@ -77,7 +84,6 @@ is_windows_2000 (void) if (!fChecked) { OSVERSIONINFO Version; - fChecked = TRUE; memset (&Version, 0x00, sizeof(Version)); Version.dwOSVersionInfoSize = sizeof(Version); @@ -88,6 +94,7 @@ is_windows_2000 (void) Version.dwMajorVersion >= 5) fIsWin2K = TRUE; } + fChecked = TRUE; } return fIsWin2K; @@ -102,7 +109,6 @@ is_windows_xp (void) if (!fChecked) { OSVERSIONINFO Version; - fChecked = TRUE; memset (&Version, 0x00, sizeof(Version)); Version.dwOSVersionInfoSize = sizeof(Version); @@ -114,6 +120,7 @@ is_windows_xp (void) Version.dwMajorVersion == 5 && Version.dwMinorVersion >= 1) ) fIsWinXP = TRUE; } + fChecked = TRUE; } return fIsWinXP; @@ -437,7 +444,6 @@ does_retrieve_ticket_cache_ticket (void) PKERB_RETRIEVE_TKT_RESPONSE pTicketResponse = NULL; ULONG ResponseSize; - fChecked = TRUE; RequestSize = sizeof(*pTicketRequest) + 1; if (!PackageConnectLookup(&LogonHandle, &PackageId)) @@ -476,6 +482,7 @@ does_retrieve_ticket_cache_ticket (void) if ( SubStatus == STATUS_NOT_SUPPORTED ) fCachesTicket = TRUE; } + fChecked = TRUE; } return fCachesTicket; |