From d9b914ea6e0bf239c1f9a41fcc650cf66d22cf42 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Fri, 4 Sep 2020 09:09:14 +0800 Subject: [PATCH] set rlim_max for setrlimit call --- src/shared_func.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/shared_func.c b/src/shared_func.c index 20d21be..daa7e79 100644 --- a/src/shared_func.c +++ b/src/shared_func.c @@ -1510,7 +1510,7 @@ int set_rlimit(int resource, const rlim_t value) return errno != 0 ? errno : EPERM; } - if (limit.rlim_cur == RLIM_INFINITY || + if ((limit.rlim_cur == RLIM_INFINITY) || (value != RLIM_INFINITY && limit.rlim_cur >= value)) { return 0; @@ -1518,6 +1518,11 @@ int set_rlimit(int resource, const rlim_t value) old_value = limit.rlim_cur; limit.rlim_cur = value; + if (!((limit.rlim_max == RLIM_INFINITY) || + (value != RLIM_INFINITY && limit.rlim_max >= value))) + { + limit.rlim_max = value; + } if (setrlimit(resource, &limit) != 0) { const char *label;