svn rev #23826: branches/krb5-1-8/src/clients/kpasswd/

tlyu@MIT.EDU tlyu at MIT.EDU
Mon Mar 22 21:58:15 EDT 2010


http://src.mit.edu/fisheye/changelog/krb5/?cs=23826
Commit By: tlyu
Log Message:
ticket: 6683
version_fixed: 1.8.1
status: resolved

pull up r23819 from trunk

 ------------------------------------------------------------------------
 r23819 | ghudson | 2010-03-18 10:37:31 -0700 (Thu, 18 Mar 2010) | 7 lines

 ticket: 6683
 target_version: 1.8.1
 tags: pullup

 Fix the kpasswd fallback from the ccache principal name to the
 username in the case where the ccache doesn't exist.


Changed Files:
U   branches/krb5-1-8/src/clients/kpasswd/kpasswd.c
Modified: branches/krb5-1-8/src/clients/kpasswd/kpasswd.c
===================================================================
--- branches/krb5-1-8/src/clients/kpasswd/kpasswd.c	2010-03-23 01:58:07 UTC (rev 23825)
+++ branches/krb5-1-8/src/clients/kpasswd/kpasswd.c	2010-03-23 01:58:15 UTC (rev 23826)
@@ -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) {
-        if (ret) {
+    } else {
+        ret = krb5_cc_default(context, &ccache);
+        if (ret != 0) {
             com_err(argv[0], ret, "opening default ccache");
             exit(1);
         }
 
-        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);
         }
 
-        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);
         }
-    } else {
-        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))) {




More information about the cvs-krb5 mailing list