diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-03-19 12:32:19 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-03-19 12:32:19 +0000 |
commit | e49164c4fd5756bbf950f5a2fb77e9685c07d806 (patch) | |
tree | 4f7814f6c353fb28dcc9222120e36b94b778442e /src/libserver/worker_util.c | |
parent | 99ff1c8add46cf0f32610ee8145ea3fe20654c5e (diff) | |
download | rspamd-e49164c4fd5756bbf950f5a2fb77e9685c07d806.tar.gz rspamd-e49164c4fd5756bbf950f5a2fb77e9685c07d806.zip |
[Feature] Check limits after being set, migrate to uint64
Diffstat (limited to 'src/libserver/worker_util.c')
-rw-r--r-- | src/libserver/worker_util.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c index 06296bba2..a5bb968e6 100644 --- a/src/libserver/worker_util.c +++ b/src/libserver/worker_util.c @@ -557,10 +557,28 @@ rspamd_worker_set_limits (struct rspamd_main *rspamd_main, rlmt.rlim_max = (rlim_t) cf->rlimit_maxcore; if (setrlimit (RLIMIT_CORE, &rlmt) == -1) { - msg_warn_main ("cannot set max core rlimit: %d, %s", + msg_warn_main ("cannot set max core rlimit: %HL, %s", cf->rlimit_maxcore, strerror (errno)); } + + /* Ensure that we did it */ + memset (&rlmt, 0, sizeof (rlmt)); + + if (getrlimit (RLIMIT_CORE, &rlmt) == -1) { + msg_warn_main ("cannot get max core rlimit: %HL, %s", + cf->rlimit_maxcore, + strerror (errno)); + } + + if (rlmt.rlim_cur != cf->rlimit_maxcore || + rlmt.rlim_max != cf->rlimit_maxcore) { + msg_warn_main ("setting of limits was unsuccessful: %HL was wanted, " + "but we have %HL cur and %HL max", + cf->rlimit_maxcore, + (guint64)rlmt.rlim_cur, + (guint64)rlmt.rlim_max); + } } } } |