}
static void
-releaseInitiatorContext(struct eap_gss_initiator_ctx *ctx)
+releaseInitiatorContext(struct gss_eap_initiator_ctx *ctx)
{
eap_peer_sm_deinit(ctx->eap);
}
static void
-releaseAcceptorContext(struct eap_gss_acceptor_ctx *ctx)
+releaseAcceptorContext(struct gss_eap_acceptor_ctx *ctx)
{
+ if (ctx->avps != NULL)
+ rc_avpair_free(ctx->avps);
+ if (ctx->radHandle != NULL)
+ rc_config_free(ctx->radHandle);
}
OM_uint32
gssEapReleaseName(&tmpMinor, &ctx->initiatorName);
gssEapReleaseName(&tmpMinor, &ctx->acceptorName);
gss_release_oid(&tmpMinor, &ctx->mechanismUsed);
- sequenceFree(ctx->seqState);
+ sequenceFree(&tmpMinor, &ctx->seqState);
GSSEAP_MUTEX_DESTROY(&ctx->mutex);
oid = &oidBuf;
}
- major = verifyTokenHeader(oid, &bodySize, &p, inputToken->length, tokenType);
+ major = verifyTokenHeader(minor, oid, &bodySize, &p,
+ inputToken->length, tokenType);
if (GSS_ERROR(major))
- return major;
+ return GSS_S_DEFECTIVE_TOKEN;
- if (ctx->mechanismUsed != GSS_C_NO_OID) {
+ if (ctx->mechanismUsed == GSS_C_NO_OID) {
if (!gssEapIsConcreteMechanismOid(oid))
return GSS_S_BAD_MECH;