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");
+ new_argv[0] = argv[0];
+ new_argv[1] = strdup("--no-stack-rlimit");
- if (!new_argv[1]) {
- perror("strdup");
- exit(1);
- }
+ if (!new_argv[1]) {
+ perror("strdup");
+ exit(1);
+ }
- for (int i = 1; i < argc; i++)
- new_argv[i + 1] = argv[i];
+ for (int i = 1; i < argc; i++)
+ new_argv[i + 1] = argv[i];
- new_argv[argc + 1] = NULL;
+ new_argv[argc + 1] = NULL;
- (void) execvp(new_argv[0], new_argv);
- perror("execvp");
- _exit(EXIT_FAILURE);
+ (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)");