diff options
author | Noel Kuntze <noel.kuntze@thermi.consulting> | 2021-05-24 14:15:34 +0200 |
---|---|---|
committer | Tomáš Mráz <tm@t8m.info> | 2021-05-24 15:17:48 +0200 |
commit | 9084c1b032161cdb53d5f66132a91bdc207faecf (patch) | |
tree | dadc8b2f6e656d2ca563b58b018ee8613440f362 | |
parent | 94dc4f97a17c1f3a0ccebab5c49a2f7f295db83b (diff) | |
download | libpwquality-git-9084c1b032161cdb53d5f66132a91bdc207faecf.tar.gz |
pam_pwquality.c: Use pam_modutil_check_user_in_passwd instead of fgetpwent_r (not available on musl)
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | src/pam_pwquality.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 201a2e6..f995294 100644 --- a/configure.ac +++ b/configure.ac @@ -97,6 +97,11 @@ if test "$enable_pam" != "no"; then test $fail = 1 && AC_MSG_ERROR([You must install the PAM development package in order to compile libpwquality]) fi + AC_CHECK_FUNC( + [pam_modutil_check_user_in_passwd], + [AC_DEFINE([HAVE_PAM_CHECK_USER_IN_PASSWD], [], [have pam_modutil_check_user_in_passwd])], + [] + ) fi if test "$enable_pam" = "yes"; then diff --git a/src/pam_pwquality.c b/src/pam_pwquality.c index 53a9b66..5c09bc7 100644 --- a/src/pam_pwquality.c +++ b/src/pam_pwquality.c @@ -98,6 +98,9 @@ static int check_local_user (pam_handle_t *pamh, const char *user) { +#ifdef HAVE_PAM_CHECK_USER_IN_PASSWD + return pam_modutil_check_user_in_passwd(pamh, user, NULL) == PAM_SUCCESS; +#else struct passwd pw, *pwp; char buf[4096]; int found = 0; @@ -136,6 +139,7 @@ check_local_user (pam_handle_t *pamh, } else { return found; } +#endif } PAM_EXTERN int |