cvsdist 0b77dc9
The idea is to not complain about problems in the default ticket file if we
cvsdist 0b77dc9
couldn't read it, because the client would be able to tell if it's there or
cvsdist 0b77dc9
not.  Still needs work, I think.
cvsdist 0b77dc9
--- krb5-1.3/src/clients/ksu/ccache.c
cvsdist 0b77dc9
+++ krb5-1.3/src/clients/ksu/ccache.c
cvsdist 0b77dc9
@@ -77,7 +77,7 @@
cvsdist 0b77dc9
     cc_def_name = krb5_cc_get_name(context, cc_def);    
cvsdist 0b77dc9
     cc_other_name = krb5_cc_get_name(context, *cc_other);    
cvsdist 0b77dc9
 
cvsdist 0b77dc9
-    if ( ! stat(cc_def_name, &st_temp)){
cvsdist 0b77dc9
+    if ( ! access(cc_def_name, R_OK) && ! stat(cc_def_name, &st_temp)){
cvsdist 0b77dc9
 	if((retval = krb5_get_nonexp_tkts(context,cc_def,&cc_def_creds_arr))){
cvsdist 0b77dc9
 		return retval;
cvsdist 0b77dc9
 	}
cvsdist 0b77dc9
--- krb5-1.3/src/clients/ksu/heuristic.c
cvsdist 0b77dc9
+++ krb5-1.3/src/clients/ksu/heuristic.c
cvsdist 0b77dc9
@@ -412,7 +412,7 @@
cvsdist 0b77dc9
 
cvsdist 0b77dc9
     cc_source_name = krb5_cc_get_name(context, cc);
cvsdist 0b77dc9
 
cvsdist 0b77dc9
-    if ( ! stat(cc_source_name, &st_temp)){
cvsdist 0b77dc9
+    if ( ! access(cc_source_name, F_OK | R_OK) && ! stat(cc_source_name, &st_temp)){
cvsdist 0b77dc9
 
cvsdist 0b77dc9
 	retval = find_ticket(context, cc, client, end_server, &temp_found);
cvsdist 0b77dc9
 	if (retval)
cvsdist 0b77dc9
@@ -572,7 +572,7 @@
cvsdist 0b77dc9
     cc_source_name = krb5_cc_get_name(context, cc_source);
cvsdist 0b77dc9
 
cvsdist 0b77dc9
 	
cvsdist 0b77dc9
-    if (! stat(cc_source_name, &st_temp)) {
cvsdist 0b77dc9
+    if (! access(cc_source_name, F_OK | R_OK) && ! stat(cc_source_name, &st_temp)) {
cvsdist 0b77dc9
 	retval = krb5_cc_get_principal(context, cc_source, &cc_def_princ);
cvsdist 0b77dc9
 	if (retval)
cvsdist 0b77dc9
 	    return retval;
cvsdist 0b77dc9
--- krb5-1.3/src/clients/ksu/main.c
cvsdist 0b77dc9
+++ krb5-1.3/src/clients/ksu/main.c
cvsdist 0b77dc9
@@ -263,7 +263,7 @@
cvsdist 0b77dc9
 		if ( strchr(cc_source_tag, ':')){
cvsdist 0b77dc9
 		    cc_source_tag_tmp = strchr(cc_source_tag, ':') + 1;
cvsdist 0b77dc9
 		    
cvsdist 0b77dc9
-		    if( stat( cc_source_tag_tmp, &st_temp)){
cvsdist 0b77dc9
+		    if( access( cc_source_tag_tmp, F_OK | R_OK) || stat( cc_source_tag_tmp, &st_temp)){
cvsdist 0b77dc9
 			com_err (prog_name, errno,
cvsdist 0b77dc9
 				 "while looking for credentials file %s",
cvsdist 0b77dc9
 				 cc_source_tag_tmp);