Fixes for Heimdal (macOS) builds from Stefan.
[mech_eap.git] / mech_eap / util_context.c
index f1720f2..b7a50c6 100644 (file)
@@ -214,7 +214,7 @@ gssEapVerifyToken(OM_uint32 *minor,
 
 OM_uint32
 gssEapContextTime(OM_uint32 *minor,
-                  gss_ctx_id_t context_handle,
+                  gss_const_ctx_id_t context_handle,
                   OM_uint32 *time_rec)
 {
     *minor = 0;
@@ -252,7 +252,7 @@ gssEapMakeOrVerifyTokenMIC(OM_uint32 *minor,
     ssize_t checksumIndex = -1;
 
     krb5_keyusage usage;
-    krb5_error_code code;
+    krb5_error_code code = 0;
     krb5_context krbContext;
     krb5_crypto_iov *kiov = NULL;
 #ifdef HAVE_HEIMDAL_VERSION
@@ -282,7 +282,6 @@ gssEapMakeOrVerifyTokenMIC(OM_uint32 *minor,
 
     kiov = GSSEAP_CALLOC(kiovCount, sizeof(*kiov));
     if (kiov == NULL) {
-        major = GSS_S_FAILURE;
         *minor = ENOMEM;
         goto cleanup;
     }
@@ -290,13 +289,11 @@ gssEapMakeOrVerifyTokenMIC(OM_uint32 *minor,
     innerTokTypes = GSSEAP_MALLOC(4 * tokens->buffers.count);
     if (innerTokTypes == NULL) {
         *minor = ENOMEM;
-        major = GSS_S_FAILURE;
         goto cleanup;
     }
 
     innerTokLengths = GSSEAP_MALLOC(4 * tokens->buffers.count);
     if (innerTokLengths == NULL) {
-        major = GSS_S_FAILURE;
         *minor = ENOMEM;
         goto cleanup;
     }
@@ -356,8 +353,13 @@ gssEapMakeOrVerifyTokenMIC(OM_uint32 *minor,
     } else {
         size_t checksumSize;
 
+#ifdef HAVE_HEIMDAL_VERSION
+        code = krb5_checksumsize(krbContext, ctx->checksumType,
+                                 &checksumSize);
+#else
         code = krb5_c_checksum_length(krbContext, ctx->checksumType,
                                       &checksumSize);
+#endif
         if (code != 0)
             goto cleanup;