struct rlimit rlim;
#ifdef HAVE_RLIMIT_NPROC
- rlim.rlim_max = rlim.rlim_cur =
- max_processes < INT_MAX ? max_processes : RLIM_INFINITY;
- if (rlim.rlim_cur != RLIM_INFINITY &&
- setrlimit(RLIMIT_NPROC, &rlim) < 0)
- i_fatal("setrlimit(RLIMIT_NPROC, %u): %m", size);
+ if (max_processes < INT_MAX) {
+ rlim.rlim_max = rlim.rlim_cur = max_processes;
+ if (setrlimit(RLIMIT_NPROC, &rlim) < 0)
+ i_fatal("setrlimit(RLIMIT_NPROC, %u): %m", size);
+ }
#endif
- rlim.rlim_max = rlim.rlim_cur =
- size > 0 && size < INT_MAX/1024/1024 ?
- size*1024*1024 : RLIM_INFINITY;
+ if (size > 0 && size < INT_MAX/1024/1024) {
+ rlim.rlim_max = rlim.rlim_cur = size*1024*1024;
- if (rlim.rlim_cur != RLIM_INFINITY &&
- setrlimit(RLIMIT_DATA, &rlim) < 0)
- i_fatal("setrlimit(RLIMIT_DATA, %u): %m", size);
+ if (setrlimit(RLIMIT_DATA, &rlim) < 0)
+ i_fatal("setrlimit(RLIMIT_DATA, %u): %m", size);
#ifdef HAVE_RLIMIT_AS
- if (rlim.rlim_cur != RLIM_INFINITY &&
- setrlimit(RLIMIT_AS, &rlim) < 0)
- i_fatal("setrlimit(RLIMIT_AS, %u): %m", size);
+ if (setrlimit(RLIMIT_AS, &rlim) < 0)
+ i_fatal("setrlimit(RLIMIT_AS, %u): %m", size);
#endif
+ }
#else
if (size != 0) {
i_warning("Can't restrict process size: "