From 7a930c3c4c617aff075cf00f9e3482f1f04cb24b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 1 Sep 2014 23:29:01 -0700 Subject: [PATCH] * eval.c (internal_lisp_condition_case): Don't overrun the stack when configured --with-wide-int on typical 32-bit platforms. --- src/ChangeLog | 5 +++++ src/eval.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 661731a9c5d..5e3ec8aa597 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-09-02 Paul Eggert + + * eval.c (internal_lisp_condition_case): Don't overrun the stack + when configured --with-wide-int on typical 32-bit platforms. + 2014-08-31 Eli Zaretskii * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also diff --git a/src/eval.c b/src/eval.c index a96d413d09f..5e986c7ecc2 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1280,7 +1280,7 @@ internal_lisp_condition_case (volatile Lisp_Object var, Lisp_Object bodyform, { /* The first clause is the one that should be checked first, so it should be added to handlerlist last. So we build in `clauses' a table that contains `handlers' but in reverse order. */ - Lisp_Object *clauses = alloca (clausenb * sizeof (Lisp_Object *)); + Lisp_Object *clauses = alloca (clausenb * sizeof *clauses); Lisp_Object *volatile clauses_volatile = clauses; int i = clausenb; for (val = handlers; CONSP (val); val = XCDR (val)) -- 2.39.5