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())
|