diff options
author | Andrew G. Morgan <morgan@kernel.org> | 2000-11-25 00:12:33 +0000 |
---|---|---|
committer | Andrew G. Morgan <morgan@kernel.org> | 2000-11-25 00:12:33 +0000 |
commit | 5b40ed49c7925927b9fda0938ce34e45849fcf5f (patch) | |
tree | 9e60a12ab82957ee188f798efb6c3bda660d72c3 /modules/pam_limits | |
parent | d1e041f9b26ee8bda0c3acbe09d4b0dc551ca52c (diff) | |
download | pam-5b40ed49c7925927b9fda0938ce34e45849fcf5f.tar.gz pam-5b40ed49c7925927b9fda0938ce34e45849fcf5f.tar.bz2 pam-5b40ed49c7925927b9fda0938ce34e45849fcf5f.zip |
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.
Diffstat (limited to 'modules/pam_limits')
-rw-r--r-- | modules/pam_limits/pam_limits.c | 20 |
1 files changed, 7 insertions, 13 deletions
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 <stdio.h> #include <unistd.h> -#ifndef __USE_POSIX2 -#define __USE_POSIX2 -#endif /* __USE_POSIX2 */ #include <string.h> #include <ctype.h> #include <stdlib.h> @@ -32,6 +29,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <sys/resource.h> + #include <utmp.h> #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; } |