Fix for https://bugs.launchpad.net/moonshot/+bug/1707679
authorDan Breslau <dbreslau@painless-security.com>
Mon, 31 Jul 2017 16:32:02 +0000 (12:32 -0400)
committerDan Breslau <dbreslau@painless-security.com>
Mon, 31 Jul 2017 16:32:02 +0000 (12:32 -0400)
(Crash in gss_get_mic in mech_eap on Debian 8)

Checking in patch submitted by Luke Howard (lukeh@padl.com)

mech_eap/get_mic.c
mech_eap/verify_mic.c

index 08dda7d..9a7bfc7 100644 (file)
 
 #include "gssapiP_eap.h"
 
-OM_uint32 GSSAPI_CALLCONV
-gss_get_mic_iov(OM_uint32 *minor,
-                gss_ctx_id_t ctx,
-                gss_qop_t qop_req,
-                gss_iov_buffer_desc *iov,
-                int iov_count)
+static OM_uint32
+gssEapGetMIC(OM_uint32 *minor,
+             gss_ctx_id_t ctx,
+             gss_qop_t qop_req,
+             gss_iov_buffer_desc *iov,
+             int iov_count)
 {
     OM_uint32 major;
 
@@ -101,9 +101,19 @@ gss_get_mic(OM_uint32 *minor,
     iov[1].buffer.value = NULL;
     iov[1].buffer.length = 0;
 
-    major = gss_get_mic_iov(minor, (gss_ctx_id_t)ctx, qop_req, iov, 2);
+    major = gssEapGetMIC(minor, (gss_ctx_id_t)ctx, qop_req, iov, 2);
     if (major == GSS_S_COMPLETE)
         *message_token = iov[1].buffer;
 
     return major;
 }
+
+OM_uint32 GSSAPI_CALLCONV
+gss_get_mic_iov(OM_uint32 *minor,
+                gss_ctx_id_t ctx,
+                gss_qop_t qop_req,
+                gss_iov_buffer_desc *iov,
+                int iov_count)
+{
+    return gssEapGetMIC(minor, ctx, qop_req, iov, iov_count);
+}
index bb9bf19..a93f5f8 100644 (file)
 
 #include "gssapiP_eap.h"
 
-OM_uint32 GSSAPI_CALLCONV
-gss_verify_mic_iov(OM_uint32 *minor,
-                   gss_ctx_id_t ctx,
-                   gss_qop_t *qop_state,
-                   gss_iov_buffer_desc *iov,
-                   int iov_count)
+static OM_uint32
+gssEapVerifyMIC(OM_uint32 *minor,
+                gss_ctx_id_t ctx,
+                gss_qop_t *qop_state,
+                gss_iov_buffer_desc *iov,
+                int iov_count)
 {
     OM_uint32 major;
 
@@ -79,5 +79,15 @@ gss_verify_mic(OM_uint32 *minor,
     iov[1].type = GSS_IOV_BUFFER_TYPE_MIC_TOKEN;
     iov[1].buffer = *message_token;
 
-    return gss_verify_mic_iov(minor, (gss_ctx_id_t)ctx, qop_state, iov, 2);
+    return gssEapVerifyMIC(minor, (gss_ctx_id_t)ctx, qop_state, iov, 2);
+}
+
+OM_uint32 GSSAPI_CALLCONV
+gss_verify_mic_iov(OM_uint32 *minor,
+                   gss_ctx_id_t ctx,
+                   gss_qop_t *qop_state,
+                   gss_iov_buffer_desc *iov,
+                   int iov_count)
+{
+    return gssEapVerifyMIC(minor, ctx, qop_state, iov, iov_count);
 }