2019-10-27 18:57:20 +01:00
|
|
|
diff -dupr squashfs4.4_orig/squashfs-tools/mksquashfs.c squashfs4.4/squashfs-tools/mksquashfs.c
|
|
|
|
--- squashfs4.4_orig/squashfs-tools/mksquashfs.c 2019-10-21 15:36:52.002369471 +0200
|
|
|
|
+++ squashfs4.4/squashfs-tools/mksquashfs.c 2019-10-21 15:37:13.402549491 +0200
|
|
|
|
@@ -4384,6 +4384,15 @@ void initialise_threads(int readq, int f
|
2016-06-16 17:30:32 +02:00
|
|
|
processors = sysconf(_SC_NPROCESSORS_ONLN);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
+ /* Every frag_thrd will:
|
|
|
|
+ * * occupy a slot in the process table (_SC_CHILD_MAX), and will
|
|
|
|
+ * * allocate SQUASHFS_FILE_MAX_SIZE (currently 1MiB), which is
|
|
|
|
+ * accounted towards the per-process datasize limit, and will
|
|
|
|
+ * * open 1 file descriptor (_SC_OPEN_MAX).
|
|
|
|
+ * Before we hit any of those limits on big irons, limit
|
|
|
|
+ * ourselves to an impressive but sane arbitrary maximum.
|
|
|
|
+ */
|
|
|
|
+ if (processors > 64) processors = 64;
|
|
|
|
|
|
|
|
if(multiply_overflow(processors, 3) ||
|
|
|
|
multiply_overflow(processors * 3, sizeof(pthread_t)))
|