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