From b2eb5b0edf24f93b76671dad3dde7f0a81f18555 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Wed, 15 Apr 2020 15:59:01 +1000 Subject: [PATCH] gss: add _gss_secure_release_buffer() Add _gss_secure_release_buffer() helper function that zeros buffer --- lib/gssapi/mech/gss_utils.c | 10 ++++++++++ lib/gssapi/mech/utils.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/lib/gssapi/mech/gss_utils.c b/lib/gssapi/mech/gss_utils.c index 96ca6acae..ffa7d9898 100644 --- a/lib/gssapi/mech/gss_utils.c +++ b/lib/gssapi/mech/gss_utils.c @@ -147,6 +147,16 @@ _gss_copy_buffer(OM_uint32 *minor_status, return (GSS_S_COMPLETE); } +OM_uint32 +_gss_secure_release_buffer(OM_uint32 *minor_status, + gss_buffer_t buffer) +{ + if (buffer->value) + memset_s(buffer->value, buffer->length, 0, buffer->length); + + return gss_release_buffer(minor_status, buffer); +} + void _gss_mg_encode_le_uint32(uint32_t n, uint8_t *p) { diff --git a/lib/gssapi/mech/utils.h b/lib/gssapi/mech/utils.h index b0c9ead1d..16f48c56a 100644 --- a/lib/gssapi/mech/utils.h +++ b/lib/gssapi/mech/utils.h @@ -31,6 +31,8 @@ OM_uint32 _gss_free_oid(OM_uint32 *, gss_OID); OM_uint32 _gss_intern_oid(OM_uint32 *, gss_const_OID, gss_OID *); OM_uint32 _gss_copy_buffer(OM_uint32 *minor_status, const gss_buffer_t from_buf, gss_buffer_t to_buf); +OM_uint32 _gss_secure_release_buffer(OM_uint32 *minor_status, + gss_buffer_t buffer); void _gss_mg_encode_le_uint32(uint32_t n, uint8_t *p); void _gss_mg_decode_le_uint32(const void *ptr, uint32_t *n);