Sfoglia il codice sorgente

avoid a segfault, if ulimit is set to unlimited

nafets 11 anni fa
parent
commit
4d74e25024
1 ha cambiato i file con 8 aggiunte e 0 eliminazioni
  1. 8 0
      lib/utils_cmd.c

+ 8 - 0
lib/utils_cmd.c

@@ -116,6 +116,14 @@ cmd_init (void)
 	}
 	}
 #endif
 #endif
 
 
+	/* if maxfd is unnaturally high, we force it to a lower value
+	 * ( e.g. on SunOS, when ulimit is set to unlimited: 2147483647 this would cause
+	 * a segfault when following calloc is called ...  ) */
+
+	if ( maxfd > 2048 ) {
+		maxfd = 2048;
+	}
+
 	if (!_cmd_pids)
 	if (!_cmd_pids)
 		_cmd_pids = calloc (maxfd, sizeof (pid_t));
 		_cmd_pids = calloc (maxfd, sizeof (pid_t));
 }
 }