summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-03-27 01:21:49 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-03-27 01:21:49 -0700
commiteb4d412de87ff7078f4c0923ea014db01b7ce551 (patch)
treeadd8a7ad2163a14ffd29fb047a108b56734ca800
parent1658b4014f884a5bee07acdebc02774780957735 (diff)
downloademacs-eb4d412de87ff7078f4c0923ea014db01b7ce551.tar.gz
* syntax.c (scan_sexps_forward): Avoid pointer wraparound.
-rw-r--r--src/ChangeLog2
-rw-r--r--src/syntax.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3d917d0e5a4..8704ba4b904 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,7 @@
2011-03-27 Paul Eggert <eggert@cs.ucla.edu>
+ * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
+
* xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
concerns.
diff --git a/src/syntax.c b/src/syntax.c
index c1442c396c1..0a1525b54ea 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -3265,9 +3265,9 @@ do { prev_from = from; \
= (curlevel == levelstart) ? -1 : (curlevel - 1)->last;
state.location = from;
state.levelstarts = Qnil;
- while (--curlevel >= levelstart)
- state.levelstarts = Fcons (make_number (curlevel->last),
- state.levelstarts);
+ while (curlevel > levelstart)
+ state.levelstarts = Fcons (make_number ((--curlevel)->last),
+ state.levelstarts);
immediate_quit = 0;
*stateptr = state;