[30189] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

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

daemon@ATHENA.MIT.EDU (Greg Hudson)
Wed May 2 01:35:55 2018

Date: Wed, 2 May 2018 01:26:03 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201805020526.w425Q3TS031772@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
Content-Type: multipart/mixed; boundary="===============0443582543057727649=="
Errors-To: cvs-krb5-bounces@mit.edu

--===============0443582543057727649==

https://github.com/krb5/krb5/commit/e5c2e8323f9b30a993ae7a1577f091fbbc7e7768
commit e5c2e8323f9b30a993ae7a1577f091fbbc7e7768
Author: Fabiano FidĂȘncio <fidencio@redhat.com>
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.
    
    [ghudson@mit.edu: 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);

--===============0443582543057727649==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

--===============0443582543057727649==--

home help back first fref pref prev next nref lref last post