diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-27 01:21:49 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-27 01:21:49 -0700 |
commit | eb4d412de87ff7078f4c0923ea014db01b7ce551 (patch) | |
tree | add8a7ad2163a14ffd29fb047a108b56734ca800 | |
parent | 1658b4014f884a5bee07acdebc02774780957735 (diff) | |
download | emacs-eb4d412de87ff7078f4c0923ea014db01b7ce551.tar.gz |
* syntax.c (scan_sexps_forward): Avoid pointer wraparound.
-rw-r--r-- | src/ChangeLog | 2 | ||||
-rw-r--r-- | src/syntax.c | 6 |
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; |