diff options
author | Ken Raeburn <raeburn@mit.edu> | 2004-07-29 01:48:05 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2004-07-29 01:48:05 +0000 |
commit | 0371b3c42e1a5accaef8a8b1ecea1f7350a95c8e (patch) | |
tree | 6e55b1be62ea067a8ce41dfad9356e324c840a95 /src/lib/gssapi/krb5/gssapi_krb5.c | |
parent | 8750984c0775daaac6c5fd85fd65a9622331fa31 (diff) | |
download | krb5-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.c | 36 |
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) { |