summaryrefslogtreecommitdiffstats
path: root/lib/libgssapi/gss_export_sec_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libgssapi/gss_export_sec_context.c')
-rw-r--r--lib/libgssapi/gss_export_sec_context.c6
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);
OpenPOWER on IntegriCloud