mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 17:51:22 +03:00
main: when generating the resource limit to pass to children, take FD_SETSIZE into consideration
When we synthesize a "struct rlimit" structure to pass on for RLIMIT_NOFILE to our children, let's explicitly make sure that the soft limit is not above FD_SETSIZE, for compat reason with select(). Note this only applies when we derive the "struct rlimit" from what we inherited. If the user configures something explicitly it always takes precedence.
This commit is contained in:
parent
cda7faa9a5
commit
99a2fd3bca
@ -1304,6 +1304,11 @@ static int bump_rlimit_nofile(struct rlimit *saved_rlimit) {
|
||||
if (arg_system)
|
||||
rl->rlim_max = MIN((rlim_t) nr, MAX(rl->rlim_max, (rlim_t) HIGH_RLIMIT_NOFILE));
|
||||
|
||||
/* If for some reason we were invoked with a soft limit above 1024 (which should never
|
||||
* happen!, but who knows what we get passed in from pam_limit when invoked as --user
|
||||
* instance), then lower what we pass on to not confuse our children */
|
||||
rl->rlim_cur = MIN(rl->rlim_cur, (rlim_t) FD_SETSIZE);
|
||||
|
||||
arg_default_rlimit[RLIMIT_NOFILE] = rl;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user