summaryrefslogtreecommitdiffstats
path: root/src/providers/krb5
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers/krb5')
-rw-r--r--src/providers/krb5/krb5_child.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
index 73575b88b..e4dc49327 100644
--- a/src/providers/krb5/krb5_child.c
+++ b/src/providers/krb5/krb5_child.c
@@ -1185,7 +1185,7 @@ static errno_t changepw_child(int fd, struct krb5_req *kr)
}
}
- if (result_string.length > 0) {
+ if (result_string.length > 0 && result_string.data[0] != '\0') {
DEBUG(1, ("krb5_change_password failed [%d][%.*s].\n", result_code,
result_string.length, result_string.data));
talloc_free(user_error_message);
@@ -1194,6 +1194,12 @@ static errno_t changepw_child(int fd, struct krb5_req *kr)
if (user_error_message == NULL) {
DEBUG(1, ("talloc_strndup failed.\n"));
}
+ } else if (result_code == KRB5_KPASSWD_SOFTERROR) {
+ user_error_message = talloc_strdup(kr->pd, "Please make sure the "
+ "password meets the complexity constraints.");
+ if (user_error_message == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("talloc_strndup failed.\n"));
+ }
}
if (user_error_message != NULL) {