Fixes for Heimdal (macOS) builds from Stefan.
[mech_eap.git] / mech_eap / util_sm.c
index 7010f99..940ca66 100644 (file)
@@ -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,