]> granicus.if.org Git - icinga2/commitdiff
Revert "fixup set rlimit stack failed condition" 6260/head
authorJean Flach <jean-marcel.flach@icinga.com>
Wed, 25 Apr 2018 12:26:40 +0000 (14:26 +0200)
committerJean Flach <jean-marcel.flach@icinga.com>
Wed, 25 Apr 2018 12:26:40 +0000 (14:26 +0200)
This reverts commit bf959371c4505bfe27b0682611c035d64b90efd3.

fixes #6257

lib/base/application.cpp

index 12b5e62f136f86dc7cd82bbd894b2762df80bfd7..37428540461adcb63aa6c5b2d34c181db4693a70 100644 (file)
@@ -239,34 +239,33 @@ void Application::SetResourceLimits()
                else
                        rl.rlim_cur = rl.rlim_max;
 
-               if (setrlimit(RLIMIT_STACK, &rl) < 0) {
+               if (setrlimit(RLIMIT_STACK, &rl) < 0)
                        Log(LogWarning, "Application")
                            << "Failed adjust resource limit for stack size (RLIMIT_STACK) with error \"" << strerror(errno) << "\"";
-                       if (set_stack_rlimit) {
-                               char **new_argv = static_cast<char **>(malloc(sizeof(char *) * (argc + 2)));
+               else 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] = nullptr;
+                       new_argv[argc + 1] = nullptr;
 
-                               (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)");