]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid segfaults when some display vector is an empty string
authorEli Zaretskii <eliz@gnu.org>
Tue, 27 Jun 2017 15:45:22 +0000 (11:45 -0400)
committerEli Zaretskii <eliz@gnu.org>
Tue, 27 Jun 2017 15:45:22 +0000 (11:45 -0400)
* src/xdisp.c (next_element_from_display_vector): Don't try
accessing the dpvec[] array if its size is zero.  (Bug#27504)

src/xdisp.c

index 784848913c00b4437d66776d0c99a40fcd3fe394..8bc5d81f4483c8f7d4c04f67375b2f0e036384a2 100644 (file)
@@ -7768,9 +7768,8 @@ next_element_from_display_vector (struct it *it)
 
   /* KFS: This code used to check ip->dpvec[0] instead of the current element.
      That seemed totally bogus - so I changed it...  */
-  gc = it->dpvec[it->current.dpvec_index];
-
-  if (GLYPH_CODE_P (gc))
+  if (it->dpend - it->dpvec > 0        /* empty dpvec[] is invalid */
+      && (gc = it->dpvec[it->current.dpvec_index], GLYPH_CODE_P (gc)))
     {
       struct face *this_face, *prev_face, *next_face;