From 5b40ed49c7925927b9fda0938ce34e45849fcf5f Mon Sep 17 00:00:00 2001 From: "Andrew G. Morgan" Date: Sat, 25 Nov 2000 00:12:33 +0000 Subject: Relevant BUGIDs: 119554 Purpose of commit: cleanup Commit summary: --------------- The pam_limits module did not allow support for a changed number of limits recognized by the kernel. Bug identified and resolved by Adam J. Richter of Yggdrasil. --- CHANGELOG | 2 ++ modules/pam_limits/pam_limits.c | 20 +++++++------------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7dbf8129..2420907c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -35,6 +35,8 @@ Where you should replace XXXXX with a bug-id. 0.73: please submit patches for this section with actual code/doc patches! +* fix for pam_limit module not dealing with all limits Adam J. Richter + (Bug 119554 - agmorgan) * comment fix describing fail_delay callback in _pam_types.h (Bug 112646 - agmorgan) * "likeauth" fix for pam_unix and pam_pwdb which (Bug 113596 - agmorgan) diff --git a/modules/pam_limits/pam_limits.c b/modules/pam_limits/pam_limits.c index 8ecb5682..a61cdf0f 100644 --- a/modules/pam_limits/pam_limits.c +++ b/modules/pam_limits/pam_limits.c @@ -21,9 +21,6 @@ #include #include -#ifndef __USE_POSIX2 -#define __USE_POSIX2 -#endif /* __USE_POSIX2 */ #include #include #include @@ -32,6 +29,7 @@ #include #include #include + #include #ifndef UT_USER /* some systems have ut_name instead of ut_user */ #define UT_USER ut_user @@ -228,52 +226,48 @@ static int is_on_group(const char *user_name, const char *group_name) static int init_limits(void) { + int i; int retval = PAM_SUCCESS; D(("called.")); - retval |= getrlimit(RLIMIT_CPU, &limits[RLIMIT_CPU].limit); + for(i = 0; i < RLIM_NLIMITS; i++) + retval |= getrlimit(i, &limits[i].limit); + limits[RLIMIT_CPU].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_CPU].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_FSIZE, &limits[RLIMIT_FSIZE].limit); limits[RLIMIT_FSIZE].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_FSIZE].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_DATA, &limits[RLIMIT_DATA].limit); limits[RLIMIT_DATA].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_DATA].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_STACK, &limits[RLIMIT_STACK].limit); limits[RLIMIT_STACK].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_STACK].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_CORE, &limits[RLIMIT_CORE].limit); limits[RLIMIT_CORE].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_CORE].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_RSS, &limits[RLIMIT_RSS].limit); limits[RLIMIT_RSS].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_RSS].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_NPROC, &limits[RLIMIT_NPROC].limit); limits[RLIMIT_NPROC].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_NPROC].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_NOFILE, &limits[RLIMIT_NOFILE].limit); limits[RLIMIT_NOFILE].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_NOFILE].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_MEMLOCK, &limits[RLIMIT_MEMLOCK].limit); limits[RLIMIT_MEMLOCK].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_MEMLOCK].src_hard = LIMITS_DEF_NONE; - retval |= getrlimit(RLIMIT_AS, &limits[RLIMIT_AS].limit); limits[RLIMIT_AS].src_soft = LIMITS_DEF_NONE; limits[RLIMIT_AS].src_hard = LIMITS_DEF_NONE; + priority = 0; login_limit = -2; login_limit_def = LIMITS_DEF_NONE; + return retval; } -- cgit v1.2.3