static void enforce_rlimits(void) { #ifdef RLIMIT_AS if (config.rlimit_as_set) set_one_rlimit(RLIMIT_AS, config.rlimit_as, "RLIMIT_AS"); #endif if (config.rlimit_core_set) set_one_rlimit(RLIMIT_CORE, config.rlimit_core, "RLIMIT_CORE"); if (config.rlimit_data_set) set_one_rlimit(RLIMIT_DATA, config.rlimit_data, "RLIMIT_DATA"); if (config.rlimit_fsize_set) set_one_rlimit(RLIMIT_FSIZE, config.rlimit_fsize, "RLIMIT_FSIZE"); if (config.rlimit_nofile_set) set_one_rlimit(RLIMIT_NOFILE, config.rlimit_nofile, "RLIMIT_NOFILE"); if (config.rlimit_stack_set) set_one_rlimit(RLIMIT_STACK, config.rlimit_stack, "RLIMIT_STACK"); #ifdef RLIMIT_NPROC if (config.rlimit_nproc_set) set_one_rlimit(RLIMIT_NPROC, config.rlimit_nproc, "RLIMIT_NPROC"); #endif /* the sysctl() call from iface-pfroute.c needs locked memory on FreeBSD */ #if defined(RLIMIT_MEMLOCK) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) /* We don't need locked memory */ set_one_rlimit(RLIMIT_MEMLOCK, 0, "RLIMIT_MEMLOCK"); #endif }
static void set_all_rlimits(const pa_daemon_conf *conf) { set_one_rlimit(&conf->rlimit_fsize, RLIMIT_FSIZE, "RLIMIT_FSIZE"); set_one_rlimit(&conf->rlimit_data, RLIMIT_DATA, "RLIMIT_DATA"); set_one_rlimit(&conf->rlimit_stack, RLIMIT_STACK, "RLIMIT_STACK"); set_one_rlimit(&conf->rlimit_core, RLIMIT_CORE, "RLIMIT_CORE"); #ifdef RLIMIT_RSS set_one_rlimit(&conf->rlimit_rss, RLIMIT_RSS, "RLIMIT_RSS"); #endif #ifdef RLIMIT_NPROC set_one_rlimit(&conf->rlimit_nproc, RLIMIT_NPROC, "RLIMIT_NPROC"); #endif #ifdef RLIMIT_NOFILE set_one_rlimit(&conf->rlimit_nofile, RLIMIT_NOFILE, "RLIMIT_NOFILE"); #endif #ifdef RLIMIT_MEMLOCK set_one_rlimit(&conf->rlimit_memlock, RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK"); #endif #ifdef RLIMIT_AS set_one_rlimit(&conf->rlimit_as, RLIMIT_AS, "RLIMIT_AS"); #endif #ifdef RLIMIT_LOCKS set_one_rlimit(&conf->rlimit_locks, RLIMIT_LOCKS, "RLIMIT_LOCKS"); #endif #ifdef RLIMIT_SIGPENDING set_one_rlimit(&conf->rlimit_sigpending, RLIMIT_SIGPENDING, "RLIMIT_SIGPENDING"); #endif #ifdef RLIMIT_MSGQUEUE set_one_rlimit(&conf->rlimit_msgqueue, RLIMIT_MSGQUEUE, "RLIMIT_MSGQUEUE"); #endif #ifdef RLIMIT_NICE set_one_rlimit(&conf->rlimit_nice, RLIMIT_NICE, "RLIMIT_NICE"); #endif #ifdef RLIMIT_RTPRIO set_one_rlimit(&conf->rlimit_rtprio, RLIMIT_RTPRIO, "RLIMIT_RTPRIO"); #endif #ifdef RLIMIT_RTTIME set_one_rlimit(&conf->rlimit_rttime, RLIMIT_RTTIME, "RLIMIT_RTTIME"); #endif }