krb5 commit [krb5-1.15]: Continue after KRB5_CC_END in KCM cache iteration

Greg Hudson <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.cvs
Message-ID <[email protected]>
https://github.com/krb5/krb5/commit/e5c2e8323f9b30a993ae7a1577f091fbbc7e7768
commit e5c2e8323f9b30a993ae7a1577f091fbbc7e7768
Author: Fabiano Fidêncio <[email protected]>
Date:   Wed Mar 28 18:27:06 2018 +0200

    Continue after KRB5_CC_END in KCM cache iteration
    
    The KCM server returns KRB5_CC_END in response to a GET_CACHE_BY_UUID
    request to indicate that the specified ccache uuid no longer exists.
    In krb5_ptcursor_next(), ignore this error and continue the iteration,
    as the Heimdal KCM client code does.
    
    In addition to addressing the case where a third party deletes a cache
    between the GET_CACHE_UUID_LIST request and when we reach that uuid in
    the iteration, this change also fixes a bug in kdestroy -A where the
    caller deletes the primary cache and we later request it by uuid when
    iterating over the list.
    
    [[email protected]: rewrote commit message; edited comment]
    
    (cherry picked from commit 49087f5e6309f298f8898c35af6f4ade418ced60)
    
    ticket: 8658
    version_fixed: 1.15.3

 src/lib/krb5/ccache/cc_kcm.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/lib/krb5/ccache/cc_kcm.c b/src/lib/krb5/ccache/cc_kcm.c
index a889e67..a3afd70 100644
--- a/src/lib/krb5/ccache/cc_kcm.c
+++ b/src/lib/krb5/ccache/cc_kcm.c
@@ -966,6 +966,9 @@ kcm_ptcursor_next(krb5_context context, krb5_cc_ptcursor cursor,
         kcmreq_init(&req, KCM_OP_GET_CACHE_BY_UUID, NULL);
         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)
+            continue;
         if (ret)
             goto cleanup;
         ret = kcmreq_get_name(&req, &name);

_______________________________________________
cvs-krb5 mailing list
[email protected]
https://mailman.mit.edu/mailman/listinfo/cvs-krb5
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.