|
 |
7d335d |
commit bfdc0955657ba83940c63d1d9771b09edc0cb453
|
|
 |
7d335d |
Author: Nalin Dahyabhai <nalin@dahyabhai.net>
|
|
 |
7d335d |
Date: Thu Dec 5 13:54:09 2013 -0500
|
|
 |
7d335d |
|
|
 |
7d335d |
Flag no-such-keyring errors in get/set-flags ccops
|
|
 |
7d335d |
|
|
 |
7d335d |
When attempting to use a keyring cache that doesn't exist, return
|
|
 |
7d335d |
KRB5_FCC_NOFILE errors during ccache get/set flags ops, and set an error
|
|
 |
7d335d |
message when we fail to read a principal name, bringing us more in line
|
|
 |
7d335d |
with the behavior we already have when using file-based caches.
|
|
 |
7d335d |
|
|
 |
7d335d |
diff --git a/src/lib/krb5/ccache/cc_keyring.c b/src/lib/krb5/ccache/cc_keyring.c
|
|
 |
7d335d |
index 1a0f1df..421b228 100644
|
|
 |
7d335d |
--- a/src/lib/krb5/ccache/cc_keyring.c
|
|
 |
7d335d |
+++ b/src/lib/krb5/ccache/cc_keyring.c
|
|
 |
7d335d |
@@ -1521,16 +1521,34 @@ krb5_krcc_remove_cred(krb5_context context, krb5_ccache cache,
|
|
 |
7d335d |
static krb5_error_code KRB5_CALLCONV
|
|
 |
7d335d |
krb5_krcc_set_flags(krb5_context context, krb5_ccache id, krb5_flags flags)
|
|
 |
7d335d |
{
|
|
 |
7d335d |
+ krb5_krcc_data *d = (krb5_krcc_data *) id->data;
|
|
 |
7d335d |
+
|
|
 |
7d335d |
DEBUG_PRINT(("krb5_krcc_set_flags: entered\n"));
|
|
 |
7d335d |
|
|
 |
7d335d |
+ k5_cc_mutex_lock(context, &d->lock);
|
|
 |
7d335d |
+ if (!d->cache_id) {
|
|
 |
7d335d |
+ k5_cc_mutex_unlock(context, &d->lock);
|
|
 |
7d335d |
+ return KRB5_FCC_NOFILE;
|
|
 |
7d335d |
+ }
|
|
 |
7d335d |
+ k5_cc_mutex_unlock(context, &d->lock);
|
|
 |
7d335d |
+
|
|
 |
7d335d |
return KRB5_OK;
|
|
 |
7d335d |
}
|
|
 |
7d335d |
|
|
 |
7d335d |
static krb5_error_code KRB5_CALLCONV
|
|
 |
7d335d |
krb5_krcc_get_flags(krb5_context context, krb5_ccache id, krb5_flags * flags)
|
|
 |
7d335d |
{
|
|
 |
7d335d |
+ krb5_krcc_data *d = (krb5_krcc_data *) id->data;
|
|
 |
7d335d |
+
|
|
 |
7d335d |
DEBUG_PRINT(("krb5_krcc_get_flags: entered\n"));
|
|
 |
7d335d |
|
|
 |
7d335d |
+ k5_cc_mutex_lock(context, &d->lock);
|
|
 |
7d335d |
+ if (!d->cache_id) {
|
|
 |
7d335d |
+ k5_cc_mutex_unlock(context, &d->lock);
|
|
 |
7d335d |
+ return KRB5_FCC_NOFILE;
|
|
 |
7d335d |
+ }
|
|
 |
7d335d |
+ k5_cc_mutex_unlock(context, &d->lock);
|
|
 |
7d335d |
+
|
|
 |
7d335d |
*flags = 0;
|
|
 |
7d335d |
return KRB5_OK;
|
|
 |
7d335d |
}
|
|
 |
7d335d |
@@ -1707,6 +1725,12 @@ krb5_krcc_retrieve_principal(krb5_context context, krb5_ccache id,
|
|
 |
7d335d |
if (!d->cache_id || !d->princ_id) {
|
|
 |
7d335d |
princ = 0L;
|
|
 |
7d335d |
kret = KRB5_FCC_NOFILE;
|
|
 |
7d335d |
+ if (d->name) {
|
|
 |
7d335d |
+ krb5_set_error_message(context, kret,
|
|
 |
7d335d |
+ _("Credentials cache keyring '%s' "
|
|
 |
7d335d |
+ "not found"),
|
|
 |
7d335d |
+ d->name);
|
|
 |
7d335d |
+ }
|
|
 |
7d335d |
goto errout;
|
|
 |
7d335d |
}
|
|
 |
7d335d |
|