--- a/squashfs-tools/mksquashfs.c 2019-08-06 11:03:34.071402614 -0400
+++ b/squashfs-tools/mksquashfs.c 2019-08-06 11:09:54.063340318 -0400
@@ -267,6 +267,7 @@ pthread_mutex_t pos_mutex = PTHREAD_MUTE
pthread_mutex_t dup_mutex = PTHREAD_MUTEX_INITIALIZER;
/* user options that control parallelisation */
+#define MAX_CPUS 256
int processors = -1;
int bwriter_size;
@@ -4124,6 +4125,10 @@ void initialise_threads(int readq, int f
#endif
}
+ /* Limit the number of processors we're going to use */
+ if(processors > MAX_CPUS)
+ processors = MAX_CPUS;
+
if(multiply_overflow(processors, 3) ||
multiply_overflow(processors * 3, sizeof(pthread_t)))
BAD_ERROR("Processors too large\n");