X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=mech_eap%2Futil_sm.c;h=940ca6627ec232a53b2214b5860d77abfa1947ae;hp=7010f998ade3d2d18dee239863c59fadbd52250b;hb=HEAD;hpb=527a687917e60958777a01ca7a458888bee341b8 diff --git a/mech_eap/util_sm.c b/mech_eap/util_sm.c index 7010f99..940ca66 100644 --- a/mech_eap/util_sm.c +++ b/mech_eap/util_sm.c @@ -115,10 +115,11 @@ makeErrorToken(OM_uint32 *minor, minorStatus = GSSEAP_RADIUS_PROT_FAILURE; } else if (!IS_WIRE_ERROR(minorStatus)) { /* Don't return non-wire error codes */ - return GSS_S_COMPLETE; + minorStatus = 0; } - minorStatus -= ERROR_TABLE_BASE_eapg; + if (minorStatus != 0) + minorStatus -= ERROR_TABLE_BASE_eapg; store_uint32_be(majorStatus, &errorData[0]); store_uint32_be(minorStatus, &errorData[4]); @@ -139,6 +140,7 @@ makeErrorToken(OM_uint32 *minor, return major; } + token->buffers.count = 1; token->types[0] = ITOK_TYPE_CONTEXT_ERR | ITOK_FLAG_CRITICAL; *minor = 0; @@ -149,7 +151,7 @@ OM_uint32 gssEapSmStep(OM_uint32 *minor, gss_cred_id_t cred, gss_ctx_id_t ctx, - gss_name_t target, + gss_const_name_t target, gss_OID mech, OM_uint32 reqFlags, OM_uint32 timeReq,