aboutsummaryrefslogtreecommitdiff
path: root/src/lib/gssapi/krb5/gssapi_krb5.c
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2004-07-29 01:48:05 +0000
committerKen Raeburn <raeburn@mit.edu>2004-07-29 01:48:05 +0000
commit0371b3c42e1a5accaef8a8b1ecea1f7350a95c8e (patch)
tree6e55b1be62ea067a8ce41dfad9356e324c840a95 /src/lib/gssapi/krb5/gssapi_krb5.c
parent8750984c0775daaac6c5fd85fd65a9622331fa31 (diff)
downloadkrb5-0371b3c42e1a5accaef8a8b1ecea1f7350a95c8e.zip
krb5-0371b3c42e1a5accaef8a8b1ecea1f7350a95c8e.tar.gz
krb5-0371b3c42e1a5accaef8a8b1ecea1f7350a95c8e.tar.bz2
* gssapi_krb5.c (kg_get_ccache_name): Make the copy always, not just
in the local-context case. Check for errors in making the copy. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16628 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/krb5/gssapi_krb5.c')
-rw-r--r--src/lib/gssapi/krb5/gssapi_krb5.c36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c
index de5f50c..e6f88a3 100644
--- a/src/lib/gssapi/krb5/gssapi_krb5.c
+++ b/src/lib/gssapi/krb5/gssapi_krb5.c
@@ -178,24 +178,28 @@ kg_get_ccache_name (OM_uint32 *minor_status, const char **out_name)
const char *name = NULL;
OM_uint32 err = 0;
- if (!err) {
- if (kg_ccache_name != NULL) {
- name = kg_ccache_name;
- } else {
- krb5_context context = NULL;
-
- /* Reset the context default ccache (see text above), and
- then retrieve it. */
- err = krb5_init_context(&context);
- if (!err)
- err = krb5_cc_set_default_name (context, NULL);
- if (!err) {
- name = krb5_cc_default_name(context);
+ if (kg_ccache_name != NULL) {
+ name = strdup(kg_ccache_name);
+ if (name == NULL)
+ err = errno;
+ } else {
+ krb5_context context = NULL;
+
+ /* Reset the context default ccache (see text above), and then
+ retrieve it. */
+ err = krb5_init_context(&context);
+ if (!err)
+ err = krb5_cc_set_default_name (context, NULL);
+ if (!err) {
+ name = krb5_cc_default_name(context);
+ if (name) {
name = strdup(name);
+ if (name == NULL)
+ err = errno;
}
- if (context)
- krb5_free_context(context);
- }
+ }
+ if (context)
+ krb5_free_context(context);
}
if (!err) {