summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/lib/gssapi/display_status.c
diff options
context:
space:
mode:
authorassar <assar@FreeBSD.org>2001-06-21 02:12:07 +0000
committerassar <assar@FreeBSD.org>2001-06-21 02:12:07 +0000
commit0c8fa354358381b3f1b92598e7f1b46f8cf744cc (patch)
treeed28ffb73cc0ae48a9892dab3f10b09bc36436d5 /crypto/heimdal/lib/gssapi/display_status.c
parent06c859ecf534f468a52f24a3eb14409d73a4907c (diff)
downloadFreeBSD-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.c24
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;
OpenPOWER on IntegriCloud