krb5 commit: Continue on KRB5_FCC_NOFILE in KCM cache iteration
Greg Hudson
ghudson at mit.edu
Fri Jan 8 00:22:47 EST 2021
https://github.com/krb5/krb5/commit/f7b3cb8bbe90817f7bfbc545f1e427c16f52a79c
commit f7b3cb8bbe90817f7bfbc545f1e427c16f52a79c
Author: Greg Hudson <ghudson at mit.edu>
Date: Sat Nov 21 01:41:41 2020 -0500
Continue on KRB5_FCC_NOFILE in KCM cache iteration
Although Heimdal's KCM client only continues after KRB5_CC_END,
Heimdal's and macOS's KCM server returns KRB5_FCC_NOFILE if a cache
uuid no longer exists. Check for both errors during iteration. Also
set ret to 0 when continuing, in case the skipped uuid is the last one
in the list.
ticket: 8967 (new)
tags: pullup
target_version: 1.19
src/lib/krb5/ccache/cc_kcm.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/src/lib/krb5/ccache/cc_kcm.c b/src/lib/krb5/ccache/cc_kcm.c
index a76a285..9093f89 100644
--- a/src/lib/krb5/ccache/cc_kcm.c
+++ b/src/lib/krb5/ccache/cc_kcm.c
@@ -981,8 +981,10 @@ kcm_ptcursor_next(krb5_context context, krb5_cc_ptcursor cursor,
k5_buf_add_len(&req.reqbuf, id, KCM_UUID_LEN);
ret = kcmio_call(context, data->io, &req);
/* Continue if the cache has been deleted. */
- if (ret == KRB5_CC_END)
+ if (ret == KRB5_CC_END || ret == KRB5_FCC_NOFILE) {
+ ret = 0;
continue;
+ }
if (ret)
goto cleanup;
ret = kcmreq_get_name(&req, &name);
More information about the cvs-krb5
mailing list