X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=verify_mic.c;h=f8ecf94b613fcd2383f0284bd85b6b5ab97c6261;hb=15c93f06ee6ddefa7e7b095351f6e66698c7cc9e;hp=2d72307f6f5963699fa81c9a454085f064b5492c;hpb=8d5242de8807f650fd9634fad250bf3d0d8dbbb2;p=mech_eap.git diff --git a/verify_mic.c b/verify_mic.c index 2d72307..f8ecf94 100644 --- a/verify_mic.c +++ b/verify_mic.c @@ -39,14 +39,17 @@ gss_verify_mic(OM_uint32 *minor, gss_buffer_t message_token, gss_qop_t *qop_state) { + OM_uint32 major; gss_iov_buffer_desc iov[3]; int conf_state; if (message_token->length < 16) { - *minor = KRB5_BAD_MSIZE; + *minor = GSSEAP_WRONG_SIZE; return GSS_S_BAD_SIG; } + *minor = 0; + iov[0].type = GSS_IOV_BUFFER_TYPE_DATA; iov[0].buffer = *message_buffer; @@ -58,6 +61,12 @@ gss_verify_mic(OM_uint32 *minor, iov[2].buffer.length = message_token->length - 16; iov[2].buffer.value = (unsigned char *)message_token->value + 16; - return gssEapUnwrapOrVerifyMIC(minor, ctx, &conf_state, qop_state, - iov, 3, TOK_TYPE_MIC); + GSSEAP_MUTEX_LOCK(&ctx->mutex); + + major = gssEapUnwrapOrVerifyMIC(minor, ctx, &conf_state, qop_state, + iov, 3, TOK_TYPE_MIC); + + GSSEAP_MUTEX_UNLOCK(&ctx->mutex); + + return major; }