diff options
-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; |