diff --git a/src/cryptenroll/cryptenroll-password.c b/src/cryptenroll/cryptenroll-password.c index d636db266e..de72278394 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" @@ -156,8 +157,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 076e06e821..019b7d70af 100644 --- a/src/firstboot/firstboot.c +++ b/src/firstboot/firstboot.c @@ -19,6 +19,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" @@ -790,8 +791,12 @@ static int prompt_root_password(int rfd) { } 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 5deb9324ae..d25104c38f 100644 --- a/src/shared/pwquality-util.c +++ b/src/shared/pwquality-util.c @@ -141,11 +141,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) {