From 459932f3ef025fd7cc7f1a29dcd6be9e8ba432bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 29 Nov 2005 08:44:21 +0000 Subject: [PATCH] (krb5_cc_get_prefix_ops): if there are not colon (:) in the name, its a file credential cachce git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16305 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/cache.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/krb5/cache.c b/lib/krb5/cache.c index 7fbe7ee40..871dfb125 100644 --- a/lib/krb5/cache.c +++ b/lib/krb5/cache.c @@ -691,8 +691,9 @@ krb5_cc_clear_mcred(krb5_creds *mcred) /* * Get the cc ops that is registered in `context' to handle the * `prefix'. `prefix' can be a complete credential cache name or a - * prefix, the function will only use part up to the first colon (:) - * if there is one. Returns NULL if ops not found. + * prefix, the function will only use part up to the first colon (:). + * If there are no colon, a file credential cache will be returned for + * compatibility reasons. Returns NULL if ops not found. */ const krb5_cc_ops * @@ -707,8 +708,11 @@ krb5_cc_get_prefix_ops(krb5_context context, const char *prefix) return NULL; } p1 = strchr(p, ':'); - if (p1) - *p1 = '\0'; + if (p1 == NULL) { + free(p1); + return &krb5_fcc_ops; + } + *p1 = '\0'; for(i = 0; i < context->num_cc_ops && context->cc_ops[i].prefix; i++) { if(strcmp(context->cc_ops[i].prefix, p) == 0) {