]> code.delx.au - gnu-emacs/commitdiff
Port to platforms where rlim_max < 0
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 27 May 2016 20:55:07 +0000 (13:55 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 27 May 2016 20:55:25 +0000 (13:55 -0700)
* src/emacs.c (main): Do not treat a negative rlim_max as a limit;
this can happen if a special value like RLIM_INFINITY is negative.

src/emacs.c

index bdcebbe163731c6ccb06fcf9aadd0a19576e2a42..b8ba86f735665b6fe988ea2be8309239a2e90bb8 100644 (file)
@@ -851,11 +851,14 @@ main (int argc, char **argv)
          /* Round the new limit to a page boundary; this is needed
             for Darwin kernel 15.4.0 (see Bug#23622) and perhaps
             other systems.  Do not shrink the stack and do not exceed
-            rlim_max.  Don't worry about values like RLIM_INFINITY
-            since in practice they are so large that the code does
-            the right thing anyway.  */
+            rlim_max.  Don't worry about exact values of
+            RLIM_INFINITY etc. since in practice when they are
+            nonnegative they are so large that the code does the
+            right thing anyway.  */
          long pagesize = getpagesize ();
-         newlim = min (newlim + pagesize - 1, rlim.rlim_max);
+         newlim += pagesize - 1;
+         if (0 <= rlim.rlim_max && rlim.rlim_max < newlim)
+           newlim = rlim.rlim_max;
          newlim -= newlim % pagesize;
 
          if (pagesize <= newlim - lim)