Hello community,
here is the log from the commit of package pam
checked in at Sun May 7 16:28:27 CEST 2006.
--------
--- pam/pam.changes 2006-04-21 13:48:29.000000000 +0200
+++ STABLE/pam/pam.changes 2006-05-05 15:16:43.000000000 +0200
@@ -1,0 +2,5 @@
+Fri May 5 15:16:29 CEST 2006 - kukuk@suse.de
+
+- Fix pam_tally LFS support [#172492]
+
+-------------------------------------------------------------------
New:
----
pam_tally-large-uid.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pam.spec ++++++
--- /var/tmp/diff_new_pack.5rWzef/_old 2006-05-07 16:28:06.000000000 +0200
+++ /var/tmp/diff_new_pack.5rWzef/_new 2006-05-07 16:28:06.000000000 +0200
@@ -19,7 +19,7 @@
Group: System/Libraries
Autoreqprov: on
Version: 0.99.3.0
-Release: 24
+Release: 28
Summary: A security tool that provides authentication for applications
Obsoletes: pam-laus
Source: Linux-PAM-%{version}.tar.bz2
@@ -48,6 +48,7 @@
Patch1: pam_listfile.diff
Patch2: pam_lastlog.diff
Patch3: libpam.pam_item.diff
+Patch4: pam_tally-large-uid.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -79,6 +80,7 @@
%patch1
%patch2
%patch3
+%patch4
#
# Install docu
#
@@ -226,6 +228,8 @@
%{_libdir}/libpam_misc.so
%changelog -n pam
+* Fri May 05 2006 - kukuk@suse.de
+- Fix pam_tally LFS support [#172492]
* Fri Apr 21 2006 - kukuk@suse.de
- Update fr.po and pl.po
* Tue Apr 11 2006 - kukuk@suse.de
++++++ pam_tally-large-uid.diff ++++++
--- configure.in
+++ configure.in 2006/05/05 13:26:30
@@ -390,7 +390,7 @@
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(gethostname gettimeofday lckpwdf mkdir select)
+AC_CHECK_FUNCS(fseeko gethostname gettimeofday lckpwdf mkdir select)
AC_CHECK_FUNCS(strcspn strdup strspn strstr strtol uname)
AC_CHECK_FUNCS(getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r)
AC_CHECK_FUNCS(getgrouplist getline getdelim)
--- modules/pam_tally/pam_tally.c
+++ modules/pam_tally/pam_tally.c 2006/05/05 13:27:08
@@ -34,11 +34,6 @@
#include
#include "faillog.h"
-#ifndef TRUE
-#define TRUE 1L
-#define FALSE 0L
-#endif
-
/*
* here, we make a definition for the externally accessible function
* in this file (this definition is required for static a module
@@ -55,6 +50,15 @@
#include
#include
+#ifndef TRUE
+#define TRUE 1L
+#define FALSE 0L
+#endif
+
+#ifndef HAVE_FSEEKO
+#define fseeko fseek
+#endif
+
/*---------------------------------------------------------------------*/
#define DEFAULT_LOGFILE "/var/log/faillog"
@@ -64,8 +68,6 @@
#define TALLY_FMT "%hu"
#define TALLY_HI ((tally_t)~0L)
-#define UID_FMT "%hu"
-
#ifndef FILENAME_MAX
# define FILENAME_MAX MAXPATHLEN
#endif
@@ -345,7 +347,7 @@
return PAM_AUTH_ERR;
}
- if ( fseek( *TALLY, uid * sizeof(struct faillog), SEEK_SET ) ) {
+ if ( fseeko( *TALLY, (off_t) uid * sizeof(struct faillog), SEEK_SET ) ) {
pam_syslog(pamh, LOG_ALERT, "fseek failed for %s", filename);
fclose(*TALLY);
return PAM_AUTH_ERR;
@@ -381,7 +383,7 @@
{
if ( tally!=TALLY_HI )
{
- if ( fseek( *TALLY, uid * sizeof(struct faillog), SEEK_SET ) ) {
+ if ( fseeko( *TALLY, uid * sizeof(struct faillog), SEEK_SET ) ) {
pam_syslog(pamh, LOG_ALERT, "fseek failed for %s", filename);
return PAM_AUTH_ERR;
}
@@ -517,9 +519,9 @@
if ( lock_time + oldtime > time(NULL) )
{
pam_syslog(pamh, LOG_NOTICE,
- "user %s ("UID_FMT") has time limit [%lds left]"
+ "user %s (%lu) has time limit [%lds left]"
" since last failure.",
- user,uid,
+ user, (unsigned long int) uid,
oldtime+lock_time
-time(NULL));
return PAM_AUTH_ERR;
@@ -538,8 +540,8 @@
( ((opts->ctrl & OPT_DENY_ROOT) || uid) ) /* even_deny stops uid check */
) {
pam_syslog(pamh, LOG_NOTICE,
- "user %s ("UID_FMT") tally "TALLY_FMT", deny "TALLY_FMT,
- user, uid, tally, deny);
+ "user %s (%lu) tally "TALLY_FMT", deny "TALLY_FMT,
+ user, (unsigned long int) uid, tally, deny);
return PAM_AUTH_ERR; /* Only unconditional failure */
}
}
@@ -807,7 +809,8 @@
}
if ( !cline_quiet )
- printf("User %s\t("UID_FMT")\t%s "TALLY_FMT"\n",cline_user,uid,
+ printf("User %s\t(%lu)\t%s "TALLY_FMT"\n",cline_user,
+ (unsigned long int) uid,
(cline_reset!=TALLY_HI)?"had":"has",tally);
i=set_tally(NULL, cline_reset, uid, cline_filename, &TALLY, fsp);
@@ -833,11 +836,13 @@
tally = fsp->fs_faillog.fail_cnt;
if ( ( pw=getpwuid(uid) ) ) {
- printf("User %s\t("UID_FMT")\t%s "TALLY_FMT"\n",pw->pw_name,uid,
+ printf("User %s\t(%lu)\t%s "TALLY_FMT"\n",pw->pw_name,
+ (unsigned long int) uid,
(cline_reset!=TALLY_HI)?"had":"has",tally);
}
else {
- printf("User [NONAME]\t("UID_FMT")\t%s "TALLY_FMT"\n",uid,
+ printf("User [NONAME]\t(%lu)\t%s "TALLY_FMT"\n",
+ (unsigned long int) uid,
(cline_reset!=TALLY_HI)?"had":"has",tally);
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...