diff --git a/src/cryptenroll/cryptenroll-password.c b/src/cryptenroll/cryptenroll-password.c index 4bde315a980..182b57dbcbb 100644 --- a/src/cryptenroll/cryptenroll-password.c +++ b/src/cryptenroll/cryptenroll-password.c @@ -3,6 +3,7 @@ #include "ask-password-api.h" #include "cryptenroll-password.h" #include "env-util.h" +#include "errno-util.h" #include "escape.h" #include "memory-util.h" #include "pwquality-util.h" @@ -158,8 +159,12 @@ int enroll_password( } r = quality_check_password(new_password, NULL, &error); - if (r < 0) - return log_error_errno(r, "Failed to check password for quality: %m"); + if (r < 0) { + if (ERRNO_IS_NOT_SUPPORTED(r)) + log_warning("Password quality check is not supported, proceeding anyway."); + else + return log_error_errno(r, "Failed to check password quality: %m"); + } if (r == 0) log_warning("Specified password does not pass quality checks (%s), proceeding anyway.", error); diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c index 9e79f846916..5bbd6ef5653 100644 --- a/src/firstboot/firstboot.c +++ b/src/firstboot/firstboot.c @@ -15,6 +15,7 @@ #include "creds-util.h" #include "dissect-image.h" #include "env-file.h" +#include "errno-util.h" #include "fd-util.h" #include "fileio.h" #include "fs-util.h" @@ -657,8 +658,12 @@ static int prompt_root_password(void) { } r = quality_check_password(*a, "root", &error); - if (r < 0) - return log_error_errno(r, "Failed to check quality of password: %m"); + if (r < 0) { + if (ERRNO_IS_NOT_SUPPORTED(r)) + log_warning("Password quality check is not supported, proceeding anyway."); + else + return log_error_errno(r, "Failed to check password quality: %m"); + } if (r == 0) log_warning("Password is weak, accepting anyway: %s", error); diff --git a/src/shared/pwquality-util.c b/src/shared/pwquality-util.c index 4107bb5c6bb..97873396c26 100644 --- a/src/shared/pwquality-util.c +++ b/src/shared/pwquality-util.c @@ -145,11 +145,8 @@ int quality_check_password(const char *password, const char *username, char **re assert(password); r = pwq_allocate_context(&pwq); - if (r < 0) { - if (ERRNO_IS_NOT_SUPPORTED(r)) - return 0; + if (r < 0) return log_debug_errno(r, "Failed to allocate libpwquality context: %m"); - } r = sym_pwquality_check(pwq, password, NULL, username, &auxerror); if (r < 0) {