aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2004-07-08 18:55:52 +0000
committerTom Yu <tlyu@mit.edu>2004-07-08 18:55:52 +0000
commit3e02a517faf35beb5dbee510ca9097bb536b00b4 (patch)
treedfd938ad75aad3e68a91c5a886e479f799f0acfe /src
parent4372abe0e9754e029a2a2b82d3deb71205de9bfc (diff)
downloadkrb5-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/ChangeLog4
-rw-r--r--src/lib/krb5/ccache/cc_mslsa.c13
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;