Просмотр исходного кода

avoid a segfault, if ulimit is set to unlimited

nafets 11 лет назад
Родитель
Сommit
4d74e25024
1 измененных файлов с 8 добавлено и 0 удалено
  1. 8 0
      lib/utils_cmd.c

+ 8 - 0
lib/utils_cmd.c

@@ -116,6 +116,14 @@ cmd_init (void)
 	}
 #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)
 		_cmd_pids = calloc (maxfd, sizeof (pid_t));
 }