]> git.eshelyaron.com Git - emacs.git/commitdiff
Fbackward_prefix_chars: stay within buffer bounds
authorNoam Postavsky <npostavs@gmail.com>
Sat, 4 Jun 2016 13:02:20 +0000 (09:02 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Fri, 17 Jun 2016 03:18:00 +0000 (23:18 -0400)
The commit 1fd3172d "(Fbackward_prefix_chars): Set point properly while
scanning" (1998-03-18), moved the check against of the position against the
buffer beginning out the loop condition so that we might end up checking
the syntax of characters before the beginning of the buffer.  This can
cause segfaults or trigger a "Point before start of properties" error in
`update_interval' (called indirectly from `char_quoted').

* src/syntax.c (Fbackward_prefix_chars): Stop the loop when beginning of
buffer is reached (Bug #3552, Bug #17132, Bug #19379).

src/syntax.c

index 0af2a21a220477b539acd2e492463a1093a1496e..6e133ad9c279628446978237cb847bed2a68bc37 100644 (file)
@@ -3098,8 +3098,9 @@ the prefix syntax flag (p).  */)
       opoint = pos;
       opoint_byte = pos_byte;
 
-      if (pos + 1 > beg)
-       DEC_BOTH (pos, pos_byte);
+      if (pos <= beg)
+        break;
+      DEC_BOTH (pos, pos_byte);
     }
 
   SET_PT_BOTH (opoint, opoint_byte);