summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krb5-1.8-kpasswd_ccache.patch52
1 files changed, 34 insertions, 18 deletions
diff --git a/krb5-1.8-kpasswd_ccache.patch b/krb5-1.8-kpasswd_ccache.patch
index 4e107f8..6dc8ce6 100644
--- a/krb5-1.8-kpasswd_ccache.patch
+++ b/krb5-1.8-kpasswd_ccache.patch
@@ -1,34 +1,50 @@
If we encounter any errors reading the user's principal name from the default
ccache, fall back to the default of using the current user's name. RT#6683
-diff -up krb5-1.8/src/clients/kpasswd/kpasswd.c.kpasswd-ccache krb5-1.8/src/clients/kpasswd/kpasswd.c
---- krb5-1.8/src/clients/kpasswd/kpasswd.c.kpasswd-ccache 2009-10-30 20:48:38.000000000 -0400
-+++ krb5-1.8/src/clients/kpasswd/kpasswd.c 2010-03-05 11:04:42.000000000 -0500
-@@ -85,21 +85,23 @@ int main(int argc, char *argv[])
+Index: src/clients/kpasswd/kpasswd.c
+===================================================================
+--- src/clients/kpasswd/kpasswd.c (revision 23818)
++++ src/clients/kpasswd/kpasswd.c (revision 23819)
+@@ -47,7 +47,7 @@
+ {
+ krb5_error_code ret;
+ krb5_context context;
+- krb5_principal princ;
++ krb5_principal princ = NULL;
+ char *pname;
+ krb5_ccache ccache;
+ krb5_get_init_creds_opt *opts = NULL;
+@@ -84,23 +84,27 @@
+ com_err(argv[0], ret, "parsing client name");
exit(1);
}
- } else if ((ret = krb5_cc_default(context, &ccache)) != KRB5_CC_NOTFOUND) {
-+ princ = NULL;
-+
- if (ret) {
+- } else if ((ret = krb5_cc_default(context, &ccache)) != KRB5_CC_NOTFOUND) {
+- if (ret) {
++ } else {
++ ret = krb5_cc_default(context, &ccache);
++ if (ret != 0) {
com_err(argv[0], ret, "opening default ccache");
-- exit(1);
+ exit(1);
}
-+ else
- if ((ret = krb5_cc_get_principal(context, ccache, &princ))) {
+- if ((ret = krb5_cc_get_principal(context, ccache, &princ))) {
++ ret = krb5_cc_get_principal(context, ccache, &princ);
++ if (ret != 0 && ret != KRB5_CC_NOTFOUND && ret != KRB5_FCC_NOFILE) {
com_err(argv[0], ret, "getting principal from ccache");
-- exit(1);
+ exit(1);
}
-+ else
- if ((ret = krb5_cc_close(context, ccache))) {
+- if ((ret = krb5_cc_close(context, ccache))) {
++ ret = krb5_cc_close(context, ccache);
++ if (ret != 0) {
com_err(argv[0], ret, "closing ccache");
-- exit(1);
+ exit(1);
}
- } else {
-+ }
-+ if (princ == NULL) {
- get_name_from_passwd_file(argv[0], context, &princ);
+- get_name_from_passwd_file(argv[0], context, &princ);
++
++ if (princ == NULL)
++ get_name_from_passwd_file(argv[0], context, &princ);
}
+ if ((ret = krb5_get_init_creds_opt_alloc(context, &opts))) {