diff --git a/0001-bugfix-cannot-open-database-file.patch b/0001-bugfix-cannot-open-database-file.patch new file mode 100644 index 0000000..002bf23 --- /dev/null +++ b/0001-bugfix-cannot-open-database-file.patch @@ -0,0 +1,50 @@ +From 3bd5a1244a35974c8a0e21a9ac866cb5935f662e Mon Sep 17 00:00:00 2001 +From: Hongxun Ren +Date: Wed, 15 Sep 2021 10:05:49 +0800 +Subject: [PATCH] bugfix cannot open database file + +--- + modules/pam_userdb/pam_userdb.c | 23 ++++++++++++++++++++--- + 1 file changed, 20 insertions(+), 3 deletions(-) + +diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c +index dc2ca23..a9992a7 100644 +--- a/modules/pam_userdb/pam_userdb.c ++++ b/modules/pam_userdb/pam_userdb.c +@@ -147,13 +147,30 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, + { + DBM *dbm; + datum key, data; ++ int retval; + ++ /* Init the DB file. */ ++ retval = dbminit(database); ++ if (retval) { ++ pam_syslog(pamh, LOG_ERR, ++ "user_lookup: could not init database `%s': %m", database); ++ return -2; ++ } + /* Open the DB file. */ + dbm = dbm_open(database, O_RDONLY, 0644); + if (dbm == NULL) { +- pam_syslog(pamh, LOG_ERR, +- "user_lookup: could not open database `%s': %m", database); +- return -2; ++ retval = dbminit(database); ++ if (retval){ ++ pam_syslog(pamh, LOG_ERR, ++ "user_lookup: could not re-init database `%s': %m", database); ++ } else { ++ dbm = dbm_open(database, O_RDONLY, 0644); ++ if(dbm == NULL) { ++ pam_syslog(pamh, LOG_ERR, ++ "user_lookup: could not open database `%s': %m", database); ++ return -2; ++ } ++ } + } + + /* dump out the database contents for debugging */ +-- +1.8.3.1 + diff --git a/pam.spec b/pam.spec index ddf23ed..7d3cbba 100644 --- a/pam.spec +++ b/pam.spec @@ -4,7 +4,7 @@ %define _pamconfdir %{_sysconfdir}/pam.d Name: pam Version: 1.4.0 -Release: 5 +Release: 6 Summary: Pluggable Authentication Modules for Linux License: BSD and GPLv2+ URL: http://www.linux-pam.org/ @@ -28,6 +28,7 @@ Patch6: Prevent-SEGFAULT-for-unknown-UID.patch Patch7: change-ndbm-to-gdbm.patch Patch6000: backport-Move-read_passwords-function-from-pam_unix-to-pam_inline.h.patch Patch6001: backport-add-helper-to-handle-SELinux.patch +Patch9000: 0001-bugfix-cannot-open-database-file.patch BuildRequires: autoconf automake libtool bison flex sed cracklib-devel gdbm-devel BuildRequires: perl-interpreter pkgconfig gettext-devel libtirpc-devel libnsl2-devel @@ -180,6 +181,9 @@ fi %changelog +* Thu Sep 16 2021 renhongxun - 1.4.0-6 +- bugfix on cannot open database file + * Mon May 17 2021 shixuantong - 1.4.0-5 - fix error in change-ndbm-to-gdbm.patch and sync community patch