aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libgssapi/gss_display_status.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/libgssapi/gss_display_status.c b/lib/libgssapi/gss_display_status.c
index 96f68609c5f6..f87cc9eeade7 100644
--- a/lib/libgssapi/gss_display_status.c
+++ b/lib/libgssapi/gss_display_status.c
@@ -144,11 +144,20 @@ OM_uint32
gss_display_status(OM_uint32 *minor_status,
OM_uint32 status_value,
int status_type,
- const gss_OID mech_type,
+ const gss_OID input_mech_type,
OM_uint32 *message_content,
gss_buffer_t status_string)
{
OM_uint32 major_status;
+ gss_OID mech_type;
+
+ mech_type = input_mech_type;
+ if (mech_type == GSS_C_NO_OID) {
+ _gss_load_mech();
+ mech_type = &SLIST_FIRST(&_gss_mechs)->gm_mech_oid;
+ if (mech_type == NULL)
+ return (GSS_S_BAD_MECH);
+ }
*minor_status = 0;
switch (status_type) {