X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=util_context.c;h=fab4313addb42661c5bbb3eafcadcbdfee8b1fc1;hb=042d1d1dd0638c46343eff7078de4b4b5a9e737d;hp=d7a87d358fdb221e1d395a63e26a2d4be7dfaaeb;hpb=bdda51e7a7cb2826aafc7faf454f08a615a87a69;p=mech_eap.git diff --git a/util_context.c b/util_context.c index d7a87d3..fab4313 100644 --- a/util_context.c +++ b/util_context.c @@ -47,6 +47,12 @@ gssEapAllocContext(OM_uint32 *minor, return GSS_S_FAILURE; } + if (GSSEAP_MUTEX_INIT(&ctx->mutex) != 0) { + *minor = errno; + gssEapReleaseContext(&tmpMinor, &ctx); + return GSS_S_FAILURE; + } + *minor = krb5_init_context(&ctx->kerberosCtx); if (*minor != 0) { gssEapReleaseContext(&tmpMinor, &ctx); @@ -100,6 +106,8 @@ gssEapReleaseContext(OM_uint32 *minor, gss_release_oid(&tmpMinor, &ctx->mechanismUsed); sequenceFree(ctx->seqState); + GSSEAP_MUTEX_DESTROY(&ctx->mutex); + memset(ctx, 0, sizeof(*ctx)); GSSEAP_FREE(ctx); *pCtx = GSS_C_NO_CONTEXT;