static void
saveStatusInfoNoCopy(OM_uint32 minor, char *message)
{
- struct gss_eap_status_info **next = NULL, *p=NULL;
+ struct gss_eap_status_info **next = NULL, *p = NULL;
struct gss_eap_thread_local_data *tld = gssEapGetThreadLocalData();
if (tld != NULL) {
if (tld != NULL) {
if (tld->krbContext == NULL) {
*minor = initKrbContext(&tld->krbContext);
- if (*minor == 0)
- *context = tld->krbContext;
+ if (*minor != 0)
+ tld->krbContext = NULL;
}
+ *context = tld->krbContext;
+ } else {
+ *minor = GSSEAP_GET_LAST_ERROR();
}
+ GSSEAP_ASSERT(*context != NULL || *minor != 0);
+
return (*minor == 0) ? GSS_S_COMPLETE : GSS_S_FAILURE;
}
struct gss_eap_thread_local_data *
gssEapGetThreadLocalData(void)
{
- return TlsGetValue(tlsIndex);
+ struct gss_eap_thread_local_data *tld;
+
+ tld = TlsGetValue(tlsIndex);
+
+ GSSEAP_ASSERT(tld != NULL);
+
+ return tld;
}
BOOL WINAPI