From 7055cb55ccacffbf6bfef521e288d38e0149fa4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 7 Apr 2004 14:22:44 +0000 Subject: [PATCH] (send_accept): use _gss_spnego_require_mechlist_mic to figure out if we need to send MechList git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13693 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/accept_sec_context.c | 10 +++++++++- lib/gssapi/krb5/accept_sec_context.c | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/gssapi/accept_sec_context.c b/lib/gssapi/accept_sec_context.c index fecb51983..573a4c7fa 100644 --- a/lib/gssapi/accept_sec_context.c +++ b/lib/gssapi/accept_sec_context.c @@ -648,6 +648,7 @@ send_accept (OM_uint32 *minor_status, u_char *buf; OM_uint32 ret; gss_buffer_desc mech_buf, mech_mic_buf; + krb5_boolean require_mic; memset(&targ, 0, sizeof(targ)); ALLOC(targ.negResult, 1); @@ -689,7 +690,14 @@ send_accept (OM_uint32 *minor_status, targ.responseToken = NULL; } - if (major_status == GSS_S_COMPLETE) { + ret = _gss_spnego_require_mechlist_mic(minor_status, context_handle, + &require_mic); + if (ret) { + free_NegTokenTarg(&targ); + return ret; + } + + if (major_status == GSS_S_COMPLETE && require_mic) { size_t buf_len; ALLOC(targ.mechListMIC, 1); diff --git a/lib/gssapi/krb5/accept_sec_context.c b/lib/gssapi/krb5/accept_sec_context.c index fecb51983..573a4c7fa 100644 --- a/lib/gssapi/krb5/accept_sec_context.c +++ b/lib/gssapi/krb5/accept_sec_context.c @@ -648,6 +648,7 @@ send_accept (OM_uint32 *minor_status, u_char *buf; OM_uint32 ret; gss_buffer_desc mech_buf, mech_mic_buf; + krb5_boolean require_mic; memset(&targ, 0, sizeof(targ)); ALLOC(targ.negResult, 1); @@ -689,7 +690,14 @@ send_accept (OM_uint32 *minor_status, targ.responseToken = NULL; } - if (major_status == GSS_S_COMPLETE) { + ret = _gss_spnego_require_mechlist_mic(minor_status, context_handle, + &require_mic); + if (ret) { + free_NegTokenTarg(&targ); + return ret; + } + + if (major_status == GSS_S_COMPLETE && require_mic) { size_t buf_len; ALLOC(targ.mechListMIC, 1);