rts: Ignore RLIMIT_AS if it is zero
authorBen Gamari <bgamari.foss@gmail.com>
Thu, 14 Jun 2018 13:19:11 +0000 (09:19 -0400)
committerBen Gamari <ben@smart-cactus.org>
Thu, 14 Jun 2018 14:03:28 +0000 (10:03 -0400)
Reviewers: erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie, carter

GHC Trac Issues: #14492

Differential Revision: https://phabricator.haskell.org/D4811

rts/posix/OSMem.c

index 479ae9d..e63e798 100644 (file)
@@ -508,7 +508,9 @@ void *osReserveHeapMemory(void *startAddressPtr, W_ *len)
 
 #if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_SYS_TIME_H)
     struct rlimit limit;
-    if (!getrlimit(RLIMIT_AS, &limit) && *len > limit.rlim_cur) {
+    if (!getrlimit(RLIMIT_AS, &limit)
+        && limit.rlim_cur > 0
+        && *len > limit.rlim_cur) {
         *len = limit.rlim_cur;
     }
 #endif