diff --git a/lib/util/aix.c b/lib/util/aix.c index 566e665bb..ef9d041cf 100644 --- a/lib/util/aix.c +++ b/lib/util/aix.c @@ -107,15 +107,21 @@ aix_setlimits(char *user) continue; rlim.rlim_cur = val == -1 ? RLIM64_INFINITY : (rlim64_t)val * aix_limits[n].factor; - /* Set hard limit per AIX /etc/security/limits documentation. */ + /* Set hard limit as per table in /etc/security/limits. */ switch (aix_limits[n].resource) { case RLIMIT_CPU: case RLIMIT_FSIZE: rlim.rlim_max = rlim.rlim_cur; break; case RLIMIT_STACK: +#ifdef HAVE_SETRLIMIT64 + rlim.rlim_max = 8388608ULL * aix_limits[n].factor; +#else rlim.rlim_max = RLIM_SAVED_MAX; +#endif break; + case RLIMIT_NOFILE: + rlim.rlim_max = 8196 * aix_limits[n].factor; default: rlim.rlim_max = RLIM64_INFINITY; break;