summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-03-27 01:29:39 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-03-27 01:29:39 -0700
commita3eed4788d421bbb778a3832fe17d82cafe3ca41 (patch)
treeaed22ef79f0834ad353a21b68527723983a0cfbc /src
parenteb4d412de87ff7078f4c0923ea014db01b7ce551 (diff)
downloademacs-a3eed4788d421bbb778a3832fe17d82cafe3ca41.tar.gz
* eval.c (Fbacktrace): Don't assume nargs fits in int.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog2
-rw-r--r--src/eval.c5
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);