From 9f7d7966ba46b648d20b0ec2ea62788b56b2018b Mon Sep 17 00:00:00 2001 From: Dan Breslau Date: Mon, 31 Jul 2017 12:32:02 -0400 Subject: [PATCH] Fix for https://bugs.launchpad.net/moonshot/+bug/1707679 (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 | 24 +++++++++++++++++------- mech_eap/verify_mic.c | 24 +++++++++++++++++------- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/mech_eap/get_mic.c b/mech_eap/get_mic.c index 08dda7d..9a7bfc7 100644 --- a/mech_eap/get_mic.c +++ b/mech_eap/get_mic.c @@ -36,12 +36,12 @@ #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); +} diff --git a/mech_eap/verify_mic.c b/mech_eap/verify_mic.c index bb9bf19..a93f5f8 100644 --- a/mech_eap/verify_mic.c +++ b/mech_eap/verify_mic.c @@ -36,12 +36,12 @@ #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); } -- 2.1.4