File: decrease-numblocks.patch

package info (click to toggle)
mbuffer 20251025%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,112 kB
  • sloc: ansic: 4,428; sh: 3,651; makefile: 165
file content (19 lines) | stat: -rw-r--r-- 646 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Description: Do not try to allocate more than the available memory.
Forwarded: no
Author: Peter Pentchev <roam@ringlet.net>
Last-Update: 2025-01-29

--- a/mbuffer.c
+++ b/mbuffer.c
@@ -1090,6 +1090,11 @@
 	if (AvP) {
 		Blocksize = PgSz;
 		Numblocks = AvP/20;
+		if ((Blocksize * (long long)Numblocks) > (long long)SSIZE_MAX) {
+			debugmsg("Cannot allocate that many blocks (%lld * %lld > %lld)\n", (long long)Blocksize, (long long)Numblocks, (long long)SSIZE_MAX);
+			while ((Blocksize * (long long)Numblocks) > (long long)SSIZE_MAX)
+				Numblocks >>= 1;
+		}
 		size_t maxsemv = 2000;
 #ifdef USE_SEMAPHORES
 		if (maxsemv > maxSemValue())