diff --git a/lib/gssapi/export_name.c b/lib/gssapi/export_name.c index eba32d136..3c1b21d7a 100644 --- a/lib/gssapi/export_name.c +++ b/lib/gssapi/export_name.c @@ -46,5 +46,20 @@ OM_uint32 gss_export_name gss_buffer_t exported_name ) { - return gss_display_name (minor_status, input_name, exported_name, NULL); + char *output_name; + krb5_error_code kerr; + + gssapi_krb5_init(); + + kerr = krb5_unparse_name(gssapi_krb5_context, + input_name, + &output_name); + + if (kerr != 0) + return GSS_S_BAD_NAME; + + exported_name->length = strlen(output_name); + exported_name->value = output_name; + + return GSS_S_COMPLETE; } diff --git a/lib/gssapi/krb5/export_name.c b/lib/gssapi/krb5/export_name.c index eba32d136..3c1b21d7a 100644 --- a/lib/gssapi/krb5/export_name.c +++ b/lib/gssapi/krb5/export_name.c @@ -46,5 +46,20 @@ OM_uint32 gss_export_name gss_buffer_t exported_name ) { - return gss_display_name (minor_status, input_name, exported_name, NULL); + char *output_name; + krb5_error_code kerr; + + gssapi_krb5_init(); + + kerr = krb5_unparse_name(gssapi_krb5_context, + input_name, + &output_name); + + if (kerr != 0) + return GSS_S_BAD_NAME; + + exported_name->length = strlen(output_name); + exported_name->value = output_name; + + return GSS_S_COMPLETE; }