diff options
Diffstat (limited to 'lib/libgssapi/gss_export_sec_context.c')
-rw-r--r-- | lib/libgssapi/gss_export_sec_context.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libgssapi/gss_export_sec_context.c b/lib/libgssapi/gss_export_sec_context.c index 71c6874..a600f28 100644 --- a/lib/libgssapi/gss_export_sec_context.c +++ b/lib/libgssapi/gss_export_sec_context.c @@ -33,6 +33,7 @@ #include "mech_switch.h" #include "context.h" +#include "utils.h" OM_uint32 gss_export_sec_context(OM_uint32 *minor_status, @@ -44,6 +45,8 @@ gss_export_sec_context(OM_uint32 *minor_status, struct _gss_mech_switch *m = ctx->gc_mech; gss_buffer_desc buf; + _gss_buffer_zero(interprocess_token); + major_status = m->gm_export_sec_context(minor_status, &ctx->gc_ctx, &buf); @@ -63,6 +66,7 @@ gss_export_sec_context(OM_uint32 *minor_status, * GSS_C_NO_CONTEXT, which we did above. * Return GSS_S_FAILURE. */ + _gss_buffer_zero(interprocess_token); *minor_status = ENOMEM; return (GSS_S_FAILURE); } @@ -72,6 +76,8 @@ gss_export_sec_context(OM_uint32 *minor_status, memcpy(p + 2, m->gm_mech_oid.elements, m->gm_mech_oid.length); memcpy(p + 2 + m->gm_mech_oid.length, buf.value, buf.length); gss_release_buffer(minor_status, &buf); + } else { + _gss_mg_error(m, major_status, *minor_status); } return (major_status); |