diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-27 01:29:39 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-27 01:29:39 -0700 |
commit | a3eed4788d421bbb778a3832fe17d82cafe3ca41 (patch) | |
tree | aed22ef79f0834ad353a21b68527723983a0cfbc /src | |
parent | eb4d412de87ff7078f4c0923ea014db01b7ce551 (diff) | |
download | emacs-a3eed4788d421bbb778a3832fe17d82cafe3ca41.tar.gz |
* eval.c (Fbacktrace): Don't assume nargs fits in int.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 2 | ||||
-rw-r--r-- | 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 <eggert@cs.ucla.edu> + * 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); |