mirror of
https://github.com/Icinga/icinga2.git
synced 2025-04-08 17:05:25 +02:00
parent
3a12ba75c7
commit
bf959371c4
@ -256,32 +256,33 @@ void Application::SetResourceLimits(void)
|
||||
else
|
||||
rl.rlim_cur = rl.rlim_max;
|
||||
|
||||
if (setrlimit(RLIMIT_STACK, &rl) < 0)
|
||||
if (setrlimit(RLIMIT_STACK, &rl) < 0) {
|
||||
Log(LogNotice, "Application", "Could not adjust resource limit for stack size (RLIMIT_STACK)");
|
||||
else if (set_stack_rlimit) {
|
||||
char **new_argv = static_cast<char **>(malloc(sizeof(char *) * (argc + 2)));
|
||||
if (set_stack_rlimit) {
|
||||
char **new_argv = static_cast<char **>(malloc(sizeof(char *) * (argc + 2)));
|
||||
|
||||
if (!new_argv) {
|
||||
perror("malloc");
|
||||
Exit(EXIT_FAILURE);
|
||||
if (!new_argv) {
|
||||
perror("malloc");
|
||||
Exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
new_argv[0] = argv[0];
|
||||
new_argv[1] = strdup("--no-stack-rlimit");
|
||||
|
||||
if (!new_argv[1]) {
|
||||
perror("strdup");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
for (int i = 1; i < argc; i++)
|
||||
new_argv[i + 1] = argv[i];
|
||||
|
||||
new_argv[argc + 1] = NULL;
|
||||
|
||||
(void) execvp(new_argv[0], new_argv);
|
||||
perror("execvp");
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
new_argv[0] = argv[0];
|
||||
new_argv[1] = strdup("--no-stack-rlimit");
|
||||
|
||||
if (!new_argv[1]) {
|
||||
perror("strdup");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
for (int i = 1; i < argc; i++)
|
||||
new_argv[i + 1] = argv[i];
|
||||
|
||||
new_argv[argc + 1] = NULL;
|
||||
|
||||
(void) execvp(new_argv[0], new_argv);
|
||||
perror("execvp");
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
# else /* RLIMIT_STACK */
|
||||
Log(LogNotice, "Application", "System does not support adjusting the resource limit for stack size (RLIMIT_STACK)");
|
||||
|
Loading…
x
Reference in New Issue
Block a user