33 lines
899 B
Diff
33 lines
899 B
Diff
|
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.
|
||
|
--- krb5/src/clients/kpasswd/kpasswd.c
|
||
|
+++ krb5/src/clients/kpasswd/kpasswd.c
|
||
|
@@ -84,21 +84,23 @@ int main(int argc, char *argv[])
|
||
|
exit(1);
|
||
|
}
|
||
|
} else if ((ret = krb5_cc_default(context, &ccache)) != KRB5_CC_NOTFOUND) {
|
||
|
+ princ = NULL;
|
||
|
+
|
||
|
if (ret) {
|
||
|
com_err(argv[0], ret, "opening default ccache");
|
||
|
- exit(1);
|
||
|
}
|
||
|
+ else
|
||
|
|
||
|
if ((ret = krb5_cc_get_principal(context, ccache, &princ))) {
|
||
|
com_err(argv[0], ret, "getting principal from ccache");
|
||
|
- exit(1);
|
||
|
}
|
||
|
+ else
|
||
|
|
||
|
if ((ret = krb5_cc_close(context, ccache))) {
|
||
|
com_err(argv[0], ret, "closing ccache");
|
||
|
- exit(1);
|
||
|
}
|
||
|
- } else {
|
||
|
+ }
|
||
|
+ if (princ == NULL) {
|
||
|
get_name_from_passwd_file(argv[0], context, &princ);
|
||
|
}
|
||
|
|