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