krb5 commit: Continue on KRB5_FCC_NOFILE in KCM cache iteration

Greg Hudson <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.cvs
Message-ID <[email protected]>
https://github.com/krb5/krb5/commit/f7b3cb8bbe90817f7bfbc545f1e427c16f52a79c
commit f7b3cb8bbe90817f7bfbc545f1e427c16f52a79c
Author: Greg Hudson <[email protected]>
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);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.