From a3eed4788d421bbb778a3832fe17d82cafe3ca41 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 27 Mar 2011 01:29:39 -0700 Subject: [PATCH] * eval.c (Fbacktrace): Don't assume nargs fits in int. --- src/ChangeLog | 2 ++ src/eval.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 8704ba4b904..57389f306be 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2011-03-27 Paul Eggert + * eval.c (Fbacktrace): Don't assume nargs fits in int. + * syntax.c (scan_sexps_forward): Avoid pointer wraparound. * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow diff --git a/src/eval.c b/src/eval.c index b9d9354f48a..b732cbc644a 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3298,7 +3298,6 @@ Output stream used is value of `standard-output'. */) (void) { register struct backtrace *backlist = backtrace_list; - register int i; Lisp_Object tail; Lisp_Object tem; struct gcpro gcpro1; @@ -3325,9 +3324,10 @@ Output stream used is value of `standard-output'. */) write_string ("(", -1); if (backlist->nargs == (size_t) MANY) { + int i; for (tail = *backlist->args, i = 0; !NILP (tail); - tail = Fcdr (tail), i++) + tail = Fcdr (tail), i = 1) { if (i) write_string (" ", -1); Fprin1 (Fcar (tail), Qnil); @@ -3335,6 +3335,7 @@ Output stream used is value of `standard-output'. */) } else { + size_t i; for (i = 0; i < backlist->nargs; i++) { if (i) write_string (" ", -1); -- 2.39.5