From: Paul Eggert Date: Wed, 3 Oct 2018 22:55:43 +0000 (-0700) Subject: Fix emacs_re_safe_alloca calculation X-Git-Tag: emacs-27.0.90~4339 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=945a7622326f7d93dd318f01d54f6bf23e0021cf;p=emacs.git Fix emacs_re_safe_alloca calculation Problem and draft fix noted by Eli Zaretskii in: https://lists.gnu.org/r/emacs-devel/2018-10/msg00022.html * src/emacs.c (main): Fix arithmetic used in calculation of emacs_re_safe_alloca. --- diff --git a/src/emacs.c b/src/emacs.c index b1c96d18285..ddaaf3fed51 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -888,11 +888,11 @@ main (int argc, char **argv) lim = newlim; } } - /* If the stack is big enough, let regex-emacs.c more of it before - falling back to heap allocation. */ - emacs_re_safe_alloca = max - (min (lim - extra, SIZE_MAX) * (min_ratio / ratio), - MAX_ALLOCA); + /* If the stack is big enough, let regex-emacs.c use more of it + before falling back to heap allocation. */ + ptrdiff_t max_failures + = min (lim - extra, min (PTRDIFF_MAX, SIZE_MAX)) / ratio; + emacs_re_safe_alloca = max (max_failures * min_ratio, MAX_ALLOCA); } #endif /* HAVE_SETRLIMIT and RLIMIT_STACK and not CYGWIN */