X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=init_sec_context.c;h=9ec5e66cf0f9ef25c093076b49157990737fd570;hb=cff9dae64ddb2ead188889c9164961bd364e8cd2;hp=252c468e1beff30a048937e02e5fda6e2d75ad32;hpb=1f273eda615c04331df6849cfbf3cfad069ea8b0;p=mech_eap.git diff --git a/init_sec_context.c b/init_sec_context.c index 252c468..9ec5e66 100644 --- a/init_sec_context.c +++ b/init_sec_context.c @@ -68,7 +68,6 @@ policyVariableToFlag(enum eapol_bool_var variable) } return flag; - } static struct eap_peer_config * @@ -294,10 +293,7 @@ eapGssSmInitAuthenticate(OM_uint32 *minor, OM_uint32 tmpMajor, tmpMinor; time_t now; int initialContextToken = 0, code; - gss_buffer_desc respBuf; - - respBuf.length = 0; - respBuf.value = NULL; + gss_buffer_desc respBuf = GSS_C_EMPTY_BUFFER; initialContextToken = (inputToken == GSS_C_NO_BUFFER || inputToken->length == 0); @@ -379,7 +375,9 @@ eapGssSmInitAuthenticate(OM_uint32 *minor, ctx->flags &= ~(CTX_FLAG_EAP_SUCCESS); major = GSS_S_CONTINUE_NEEDED; ctx->state = EAP_STATE_GSS_CHANNEL_BINDINGS; - } else if ((ctx->flags & CTX_FLAG_EAP_FAIL) || code == 0) { + } else if (ctx->flags & CTX_FLAG_EAP_FAIL) { + major = GSS_S_DEFECTIVE_CREDENTIAL; + } else if (code == 0) { major = GSS_S_FAILURE; } @@ -545,13 +543,11 @@ gss_init_sec_context(OM_uint32 *minor, OM_uint32 tmpMajor, tmpMinor; gss_ctx_id_t ctx = *context_handle; struct gss_eap_initiator_sm *sm = NULL; - gss_buffer_desc innerInputToken, innerOutputToken; + gss_buffer_desc innerInputToken; + gss_buffer_desc innerOutputToken = GSS_C_EMPTY_BUFFER; *minor = 0; - innerOutputToken.length = 0; - innerOutputToken.value = NULL; - output_token->length = 0; output_token->value = NULL;