diff options
author | assar <assar@FreeBSD.org> | 2001-06-21 02:12:07 +0000 |
---|---|---|
committer | assar <assar@FreeBSD.org> | 2001-06-21 02:12:07 +0000 |
commit | 0c8fa354358381b3f1b92598e7f1b46f8cf744cc (patch) | |
tree | ed28ffb73cc0ae48a9892dab3f10b09bc36436d5 /crypto/heimdal/lib/gssapi/display_status.c | |
parent | 06c859ecf534f468a52f24a3eb14409d73a4907c (diff) | |
download | FreeBSD-src-0c8fa354358381b3f1b92598e7f1b46f8cf744cc.zip FreeBSD-src-0c8fa354358381b3f1b92598e7f1b46f8cf744cc.tar.gz |
import of heimdal 0.3f
Diffstat (limited to 'crypto/heimdal/lib/gssapi/display_status.c')
-rw-r--r-- | crypto/heimdal/lib/gssapi/display_status.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/crypto/heimdal/lib/gssapi/display_status.c b/crypto/heimdal/lib/gssapi/display_status.c index f08c47e..1fa0531 100644 --- a/crypto/heimdal/lib/gssapi/display_status.c +++ b/crypto/heimdal/lib/gssapi/display_status.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2001 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -33,7 +33,9 @@ #include "gssapi_locl.h" -RCSID("$Id: display_status.c,v 1.5 1999/12/02 17:05:03 joda Exp $"); +RCSID("$Id: display_status.c,v 1.6 2001/05/11 09:16:46 assar Exp $"); + +static char *krb5_error_string; static char * calling_error(OM_uint32 v) @@ -91,6 +93,20 @@ routine_error(OM_uint32 v) return msgs[v]; } +void +gssapi_krb5_set_error_string (void) +{ + krb5_error_string = krb5_get_error_string(gssapi_krb5_context); +} + +char * +gssapi_krb5_get_error_string (void) +{ + char *ret = krb5_error_string; + krb5_error_string = NULL; + return ret; +} + OM_uint32 gss_display_status (OM_uint32 *minor_status, OM_uint32 status_value, @@ -118,7 +134,9 @@ OM_uint32 gss_display_status return GSS_S_FAILURE; } } else if (status_type == GSS_C_MECH_CODE) { - buf = strdup(krb5_get_err_text (gssapi_krb5_context, status_value)); + buf = gssapi_krb5_get_error_string (); + if (buf == NULL) + buf = strdup(krb5_get_err_text (gssapi_krb5_context, status_value)); if (buf == NULL) { *minor_status = ENOMEM; return GSS_S_FAILURE; |