X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=util_context.c;h=99c9405b584723f6eaaeffc29981446b38a7dabb;hb=cff9dae64ddb2ead188889c9164961bd364e8cd2;hp=cf2a41f6851e0ba8db8f7d11ed3b8fe8ed6e2918;hpb=ec09fc1630996e1c5abee64d2a0a9af1e7bf08c7;p=mech_eap.orig diff --git a/util_context.c b/util_context.c index cf2a41f..99c9405 100644 --- a/util_context.c +++ b/util_context.c @@ -74,14 +74,18 @@ gssEapAllocContext(OM_uint32 *minor, } 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 @@ -108,7 +112,7 @@ gssEapReleaseContext(OM_uint32 *minor, 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); @@ -165,11 +169,12 @@ gssEapVerifyToken(OM_uint32 *minor, 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;